diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fc4dac..edff706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1 @@ -VERSION=v0.3.5 - SHA: f1f54b02ad8dbef3ef9eae7b3ea0aa753d136df5 +VERSION=v0.3.5 - SHA: a2bcb414c1279064b8ec14230dc2b64f7a7de271 diff --git a/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-1720085014.json b/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-1720085014.json new file mode 100644 index 0000000..7ed8dfb --- /dev/null +++ b/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-1720085014.json @@ -0,0 +1,249 @@ +{ + "transactions": [ + { + "hash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionType": "CREATE", + "contractName": "RONRegistrarController", + "contractAddress": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843", + "function": null, + "arguments": null, + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x539db6", + "value": "0x0", + "input": "0x60806040526000805460ff19169055600180556200001c62000022565b620000e9565b60005462010000900460ff1615620000905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600054610100900460ff90811614620000e7576000805461ff00191661ff0017905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612fbc80620000f96000396000f3fe6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a6102453660046120d0565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120fa565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d610358366004612128565b610745565b005b34801561036b57600080fd5b5061035d61037a366004612128565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b8366004612128565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612158565b610815565b61035d61043b36600461218a565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d61047336600461220c565b6109d8565b34801561048457600080fd5b5061035d610493366004612313565b610b80565b3480156104a457600080fd5b5061035d610cb9565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d93660046124a3565b610cd9565b3480156104ea57600080fd5b506102a26104f936600461255e565b610e3a565b34801561050a57600080fd5b5061024a610519366004612128565b610e59565b34801561052a57600080fd5b5061024a610539366004612580565b610e84565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e366004612580565b610f12565b34801561057f57600080fd5b5061027361058e3660046125bc565b610f9d565b34801561059f57600080fd5b5061035d6105ae3660046120fa565b61104d565b3480156105bf57600080fd5b506103086105ce3660046120fa565b611061565b61035d6105e1366004612602565b611078565b3480156105f257600080fd5b5061035d610601366004612128565b611184565b34801561061257600080fd5b50610308610621366004612602565b6111a9565b34801561063257600080fd5b5061035d61064136600461255e565b611235565b34801561065257600080fd5b50610308600080516020612f6783398151915281565b34801561067457600080fd5b5061035d610683366004612158565b61124a565b34801561069457600080fd5b5061035d6106a33660046120fa565b61125e565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f7366004612580565b6112b7565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f826112f4565b92915050565b60008281526002602052604090206001015461076081611329565b61076a8383611333565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611355565b5050565b600080516020612f6783398151915261080a81611329565b610812611377565b50565b600061082081611329565b6107ee826113c9565b610831611420565b610839611468565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610f9d915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac82346126dc565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112b792505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097391906126ef565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab9493929190612735565b60405180910390a282156109c3576109c333846114c1565b6109cb611526565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f678339815191528b61153c565b610aca60008c61153c565b610ad3836113c9565b610adc86611546565b610ae6878961157d565b610aef89611607565b603a80546001600160a01b038088166001600160a01b031992831617909255603b8054878416908316179055603d8054928516929091169190911790558015610b73576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610baa81611329565b84801580610bb85750808414155b15610bd657604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c665783603f60008a8a85818110610bf857610bf8612769565b9050602002013581526020019081526020016000206000888885818110610c2157610c21612769565b9050602002016020810190610c369190612158565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bd9565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610ca895949392919061277f565b60405180910390a250505050505050565b600080516020612f67833981519152610cd181611329565b610812611678565b610ce1611420565b610ce9611468565b86610cf3816116b5565b610cfc88610f12565b610d1b57876040516308eee0fd60e31b81526004016107db9190612869565b6000610d26896112b7565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9d9190810190612936565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dda575080155b15610e00578a8a8383604051631fc5717160e01b81526004016107db9493929190612a18565b600080610e0d8d8c6116dd565b91509150610e228d8d8d8d8d8d8d8989611735565b505050505050610e3160018055565b50505050505050565b6000828152600360205260408120610e52908361185f565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e918361186b565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610eca908590600401612869565b602060405180830381865afa158015610ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612a52565b1592915050565b6000610f1d82610e84565b801561073f5750603a546001600160a01b03166396e494e8610f3e846112b7565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b602060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f9190612a52565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fd89089908990600401612a6f565b608060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612aca565b8051825192945090925061102c91612aff565b9350806020015182602001516110429190612aff565b925050509250929050565b600061105881611329565b6107ee82611546565b600081815260036020526040812061073f90611959565b611080611420565b611088611468565b6000611093896112b7565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111059190810190612936565b60200151606001511561112d57886040516331597a5760e21b81526004016107db9190612869565b600061113f8a8a8a8a8a8a8a8a6111a9565b905061114b8882611963565b6000806111588c8b6116dd565b9150915061116d8c8c8c8b8b8b8b8989611735565b5050505061117a60018055565b5050505050505050565b60008281526002602052604090206001015461119f81611329565b61076a8383611355565b6000886111b5816116b5565b83158015906111cb57506001600160a01b038616155b156111e9576040516334fd817160e21b815260040160405180910390fd5b6111f28a6112b7565b89898989898989604051602001611210989796959493929190612ba3565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124081611329565b61076a838361157d565b600061125581611329565b6107ee82611607565b611266611420565b6037546000828152603e6020526040902054429161128391612aff565b106112a457604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b6108128133611a14565b61133d8282611a47565b600082815260036020526040902061076a9082611acd565b61135f8282611ae2565b600082815260036020526040902061076a9082611b49565b61137f611b5e565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114665760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114ba5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114cd8383611ba7565b90508061076a576114e6836001600160a01b0316611c1d565b6114ef83611c33565b604051602001611500929190612c03565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612869565b603954611466906001600160a01b0316476114c1565b6107ee8282611333565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611415565b4281111561159e57604051630b4319e560e21b815260040160405180910390fd5b8181116115be576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b6001600160a01b03811661162e5760405163e99d5ac560e01b815260040160405180910390fd5b603980546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b611680611420565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ac3390565b6116be81610f12565b61081257806040516308eee0fd60e31b81526004016107db9190612869565b6000806116ea8484610f9d565b9092509050348111156117105760405163044044a560e21b815260040160405180910390fd5b348181039082146117255761172533826114c1565b5061172e611526565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b81526004016117a1959493929190612c81565b60408051808303816000875af11580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612ccc565b909250905085156117fa576117fa88828989611c4a565b841561180a5761180a8b8b611cc8565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d86888760405161184a9493929190612cfa565b60405180910390a35050505050505050505050565b6000610e528383611d5f565b600080600080845190505b8083101561195157600085848151811061189257611892612769565b01602001516001600160f81b0319169050600160ff1b8110156118ba57600184019350611945565b600760fd1b6001600160f81b0319821610156118db57600284019350611945565b600f60fc1b6001600160f81b0319821610156118fc57600384019350611945565b601f60fb1b6001600160f81b03198216101561191d57600484019350611945565b603f60fa1b6001600160f81b03198216101561193e57600584019350611945565b6006840193505b50600190910190611876565b509392505050565b600061073f825490565b603854826001600160401b0316101561199a576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119b390426126dc565b90506036548110156119db57604051635320bcf960e01b8152600481018390526024016107db565b806037541015611a015760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b611a1e8282610e59565b6107ee57611a2b81611c1d565b611a36836020611d89565b604051602001611500929190612d32565b611a518282610e59565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e52836001600160a01b038416611f24565b611aec8282610e59565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e52836001600160a01b038416611f73565b60005460ff166114665760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611bd19190612da7565b60006040518083038185875af1925050503d8060008114611c0e576040519150601f19603f3d011682016040523d82523d6000602084013e611c13565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d89565b606061073f82611c4284612066565b600101611d89565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c7a90869086908690600401612dc3565b6000604051808303816000875af1158015611c99573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cc19190810190612de6565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611cf0908690602001612ebd565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611d1c929190612ee5565b6020604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612f09565b6000826000018281548110611d7657611d76612769565b9060005260206000200154905092915050565b60606000611d98836002612f22565b611da3906002612aff565b6001600160401b03811115611dba57611dba612396565b6040519080825280601f01601f191660200182016040528015611de4576020820181803683370190505b509050600360fc1b81600081518110611dff57611dff612769565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e2e57611e2e612769565b60200101906001600160f81b031916908160001a9053506000611e52846002612f22565b611e5d906001612aff565b90505b6001811115611ed5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e9157611e91612769565b1a60f81b828281518110611ea757611ea7612769565b60200101906001600160f81b031916908160001a90535060049490941c93611ece81612f39565b9050611e60565b508315610e525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f6b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b6000818152600183016020526040812054801561205c576000611f976001836126dc565b8554909150600090611fab906001906126dc565b9050818114612010576000866000018281548110611fcb57611fcb612769565b9060005260206000200154905080876000018481548110611fee57611fee612769565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061202157612021612f50565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561207e5760809290921c916010015b604083901c156120935760409290921c916008015b602083901c156120a85760209290921c916004015b601083901c156120bd5760109290921c916002015b600883901c1561073f5760010192915050565b6000602082840312156120e257600080fd5b81356001600160e01b031981168114610e5257600080fd5b60006020828403121561210c57600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b6000806040838503121561213b57600080fd5b82359150602083013561214d81612113565b809150509250929050565b60006020828403121561216a57600080fd5b8135610e5281612113565b6001600160401b038116811461081257600080fd5b60008060006040848603121561219f57600080fd5b83356001600160401b03808211156121b657600080fd5b818601915086601f8301126121ca57600080fd5b8135818111156121d957600080fd5b8760208285010111156121eb57600080fd5b6020928301955093505084013561220181612175565b809150509250925092565b6000806000806000806000806000806101408b8d03121561222c57600080fd5b8a3561223781612113565b995060208b013561224781612113565b985060408b013561225781612113565b975060608b0135965060808b0135955060a08b0135945060c08b013561227c81612113565b935060e08b013561228c81612113565b92506101008b013561229d81612113565b91506101208b01356122ae81612113565b809150509295989b9194979a5092959850565b60008083601f8401126122d357600080fd5b5081356001600160401b038111156122ea57600080fd5b6020830191508360208260051b850101111561172e57600080fd5b801515811461081257600080fd5b60008060008060006060868803121561232b57600080fd5b85356001600160401b038082111561234257600080fd5b61234e89838a016122c1565b9097509550602088013591508082111561236757600080fd5b50612374888289016122c1565b909450925050604086013561238881612305565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156123ce576123ce612396565b60405290565b604051606081016001600160401b03811182821017156123ce576123ce612396565b604051601f8201601f191681016001600160401b038111828210171561241e5761241e612396565b604052919050565b60006001600160401b0382111561243f5761243f612396565b50601f01601f191660200190565b600082601f83011261245e57600080fd5b813561247161246c82612426565b6123f6565b81815284602083860101111561248657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a0312156124be57600080fd5b87356001600160401b03808211156124d557600080fd5b6124e18b838c0161244d565b985060208a013591506124f382612113565b90965060408901359061250582612175565b90955060608901359061251782612113565b9094506080890135908082111561252d57600080fd5b5061253a8a828b016122c1565b90945092505060a088013561254e81612305565b8091505092959891949750929550565b6000806040838503121561257157600080fd5b50508035926020909101359150565b60006020828403121561259257600080fd5b81356001600160401b038111156125a857600080fd5b6125b48482850161244d565b949350505050565b600080604083850312156125cf57600080fd5b82356001600160401b038111156125e557600080fd5b6125f18582860161244d565b925050602083013561214d81612175565b60008060008060008060008060e0898b03121561261e57600080fd5b88356001600160401b038082111561263557600080fd5b6126418c838d0161244d565b995060208b0135915061265382612113565b90975060408a01359061266582612175565b90965060608a0135955060808a01359061267e82612113565b90945060a08a0135908082111561269457600080fd5b506126a18b828c016122c1565b90945092505060c08901356126b581612305565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f6126c6565b60006020828403121561270157600080fd5b8151610e5281612175565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061274960608301868861270c565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561279f57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127fc5783356127df81612113565b6001600160a01b03168152928101926001929092019181016127cc565b8615156040870152935061280f92505050565b9695505050505050565b60005b8381101561283457818101518382015260200161281c565b50506000910152565b60008151808452612855816020860160208601612819565b601f01601f19169290920160200192915050565b602081526000610e52602083018461283d565b600061288a61246c84612426565b905082815283838301111561289e57600080fd5b610e52836020830184612819565b6000608082840312156128be57600080fd5b604051608081018181106001600160401b03821117156128e0576128e0612396565b806040525080915082516128f381612113565b8152602083015161290381612113565b6020820152604083015161291681612175565b6040820152606083015161292981612305565b6060919091015292915050565b6000602080838503121561294957600080fd5b82516001600160401b038082111561296057600080fd5b9084019060a0828703121561297457600080fd5b61297c6123ac565b82518281111561298b57600080fd5b83016060818903121561299d57600080fd5b6129a56123d4565b815160ff811681146129b657600080fd5b815281860151868201526040820151848111156129d257600080fd5b82019350601f840189136129e557600080fd5b6129f389855188870161287c565b6040820152825250612a07878486016128ac565b848201528094505050505092915050565b608081526000612a2b608083018761283d565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a6457600080fd5b8151610e5281612305565b604081526000612a82604083018561283d565b90506001600160401b03831660208301529392505050565b600060408284031215612aac57600080fd5b612ab46123ac565b9050815181526020820151602082015292915050565b60008060808385031215612add57600080fd5b612ae78484612a9a565b9150612af68460408501612a9a565b90509250929050565b8082018082111561073f5761073f6126c6565b81835260006020808501808196508560051b810191508460005b87811015612b965782840389528135601e19883603018112612b4d57600080fd5b870185810190356001600160401b03811115612b6857600080fd5b803603821315612b7757600080fd5b612b8286828461270c565b9a87019a9550505090840190600101612b2c565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612bec9083018587612b12565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612c4e81602a850160208801612819565b660103b30b63ab2960cd1b602a918401918201528351612c75816031840160208801612819565b01603101949350505050565b85815260a060208201526000612c9a60a083018761283d565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612cdf57600080fd5b8251612cea81612175565b6020939093015192949293505050565b608081526000612d0d608083018761283d565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d6a816017850160208801612819565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d9b816028840160208801612819565b01602801949350505050565b60008251612db9818460208701612819565b9190910192915050565b838152604060208201526000612ddd604083018486612b12565b95945050505050565b60006020808385031215612df957600080fd5b82516001600160401b0380821115612e1057600080fd5b818501915085601f830112612e2457600080fd5b815181811115612e3657612e36612396565b8060051b612e458582016123f6565b9182528381018501918581019089841115612e5f57600080fd5b86860192505b83831015612eb057825185811115612e7d5760008081fd5b8601603f81018b13612e8f5760008081fd5b612ea08b898301516040840161287c565b8352509186019190860190612e65565b9998505050505050505050565b60008251612ecf818460208701612819565b63173937b760e11b920191825250600401919050565b6001600160a01b03831681526040602082018190526000906125b49083018461283d565b600060208284031215612f1b57600080fd5b5051919050565b808202811582820484141761073f5761073f6126c6565b600081612f4857612f486126c6565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa26469706673582212203a109c3a44f7a0139823c421a40975bf8029ef66d689d4458e4d45cf8a5dbf8264736f6c63430008150033", + "nonce": "0xc3", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionType": "CREATE", + "contractName": "RNSCommission", + "contractAddress": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a", + "function": null, + "arguments": null, + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x321ebc", + "value": "0x0", + "input": "0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611c46806100ec6000396000f3fe6080604052600436106100ec5760003560e01c806391cbc73f1161008a578063c42ef38c11610059578063c42ef38c14610297578063ca15c873146102cb578063d547741f146102eb578063e92108b51461030b57600080fd5b806391cbc73f1461022257806391d14854146102425780639fd50e5814610262578063a217fddf1461028257600080fd5b806336568abe116100c657806336568abe146101945780634c255c97146101b45780635dc30fe5146101ca5780639010d07c146101ea57600080fd5b806301ffc9a714610100578063248a9ca3146101355780632f2ff15d1461017457600080fd5b366100fb576100f961032d565b005b600080fd5b34801561010c57600080fd5b5061012061011b366004611324565b610367565b60405190151581526020015b60405180910390f35b34801561014157600080fd5b5061016661015036600461134e565b6000908152600160208190526040909120015490565b60405190815260200161012c565b34801561018057600080fd5b506100f961018f36600461137c565b610392565b3480156101a057600080fd5b506100f96101af36600461137c565b6103bd565b3480156101c057600080fd5b5061016661271081565b3480156101d657600080fd5b506100f96101e53660046113f8565b610440565b3480156101f657600080fd5b5061020a61020536600461143a565b610455565b6040516001600160a01b03909116815260200161012c565b34801561022e57600080fd5b506100f961023d36600461145c565b610474565b34801561024e57600080fd5b5061012061025d36600461137c565b610605565b34801561026e57600080fd5b506100f961027d3660046114df565b610630565b34801561028e57600080fd5b50610166600081565b3480156102a357600080fd5b506101667f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf281565b3480156102d757600080fd5b506101666102e636600461134e565b61074e565b3480156102f757600080fd5b506100f961030636600461137c565b610765565b34801561031757600080fd5b5061032061078b565b60405161012c91906115b8565b6103577f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf233610605565b15610365576103653461089c565b565b60006001600160e01b03198216635a05180f60e01b148061038c575061038c82610a9d565b92915050565b600082815260016020819052604090912001546103ae81610ad2565b6103b88383610adf565b505050565b6001600160a01b03811633146104325760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043c8282610b01565b5050565b600061044b81610ad2565b6103b88383610b23565b600082815260026020526040812061046d9083610ca6565b9392505050565b600054610100900460ff16158080156104945750600054600160ff909116105b806104ae5750303b1580156104ae575060005460ff166001145b6105115760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610429565b6000805460ff191660011790558015610534576000805461ff0019166101001790555b61053f600087610cb2565b8160005b818110156105ab5761059b7f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf286868481811061058157610581611640565b90506020020160208101906105969190611656565b610cb2565b6105a481611689565b9050610543565b506105b68686610b23565b5080156105fd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061063b81610ad2565b603554851061065d57604051634ec4810560e11b815260040160405180910390fd5b6001600160a01b0384166106845760405163e99d5ac560e01b815260040160405180910390fd5b836035868154811061069857610698611640565b906000526020600020906003020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508282603587815481106106e2576106e2611640565b90600052602060002090600302016002019182610700929190611738565b5084336001600160a01b03167faa3076bb2e00a425a96ce6aa8762a984fe8ed14922e3fba98cfa90683cb05ff886868660405161073f93929190611822565b60405180910390a35050505050565b600081815260026020526040812061038c90610cbc565b6000828152600160208190526040909120015461078181610ad2565b6103b88383610b01565b60606035805480602002602001604051908101604052809291908181526020016000905b82821015610893576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018101549383019390935260028301805492939291840191610802906116b8565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906116b8565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b505050505081525050815260200190600101906107af565b50505050905090565b806000036108bd576040516370bf851360e11b815260040160405180910390fd5b60355460008190036108e257604051634ec4810560e11b815260040160405180910390fd5b60006108ef600183611850565b90506000805b828110156109e457600061092d866035848154811061091657610916611640565b906000526020600020906003020160010154610cc6565b90506109398184611863565b92506109716035838154811061095157610951611640565b60009182526020909120600390910201546001600160a01b031682610cdf565b6035828154811061098457610984611640565b6000918252602091829020600390910201546040518381526001600160a01b03909116917fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af910160405180910390a2506109dd81611689565b90506108f5565b5083811015610a9757610a2c60358381548110610a0357610a03611640565b60009182526020909120600390910201546001600160a01b0316610a278387611850565b610cdf565b60358281548110610a3f57610a3f611640565b60009182526020909120600390910201546001600160a01b03167fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af610a848387611850565b6040519081526020015b60405180910390a25b50505050565b60006001600160e01b03198216637965db0b60e01b148061038c57506301ffc9a760e01b6001600160e01b031983161461038c565b610adc8133610d44565b50565b610ae98282610d77565b60008281526002602052604090206103b89082610de2565b610b0b8282610df7565b60008281526002602052604090206103b89082610e5e565b806000819003610b4657604051634ec4810560e11b815260040160405180910390fd5b610b5260356000611284565b6000805b82811015610c48576000858583818110610b7257610b72611640565b9050602002810190610b849190611876565b610b92906020810190611656565b6001600160a01b031603610bb95760405163e99d5ac560e01b815260040160405180910390fd5b848482818110610bcb57610bcb611640565b9050602002810190610bdd9190611876565b610beb906020013583611863565b91506035858583818110610c0157610c01611640565b9050602002810190610c139190611876565b815460018101835560009283526020909220909160030201610c358282611896565b505080610c4190611689565b9050610b56565b506127108114610c6b5760405163648564d360e01b815260040160405180910390fd5b336001600160a01b03167f28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c008585604051610a8e9291906119c0565b600061046d8383610e73565b61043c8282610adf565b600061038c825490565b6000612710610cd58385611a92565b61046d9190611aa9565b6000610ceb8383610e9d565b9050806103b857610d04836001600160a01b0316610f13565b610d0d83610f29565b604051602001610d1e929190611acb565b60408051601f198184030181529082905262461bcd60e51b825261042991600401611b49565b610d4e8282610605565b61043c57610d5b81610f13565b610d66836020610f3c565b604051602001610d1e929190611b5c565b610d818282610605565b61043c5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600061046d836001600160a01b0384166110d8565b610e018282610605565b1561043c5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061046d836001600160a01b038416611127565b6000826000018281548110610e8a57610e8a611640565b9060005260206000200154905092915050565b604080516000808252602082019092526001600160a01b038416908390604051610ec79190611bd1565b60006040518083038185875af1925050503d8060008114610f04576040519150601f19603f3d011682016040523d82523d6000602084013e610f09565b606091505b5090949350505050565b606061038c6001600160a01b0383166014610f3c565b606061038c82610f388461121a565b6001015b60606000610f4b836002611a92565b610f56906002611863565b67ffffffffffffffff811115610f6e57610f6e6116a2565b6040519080825280601f01601f191660200182016040528015610f98576020820181803683370190505b509050600360fc1b81600081518110610fb357610fb3611640565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610fe257610fe2611640565b60200101906001600160f81b031916908160001a9053506000611006846002611a92565b611011906001611863565b90505b6001811115611089576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061104557611045611640565b1a60f81b82828151811061105b5761105b611640565b60200101906001600160f81b031916908160001a90535060049490941c9361108281611be3565b9050611014565b50831561046d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610429565b600081815260018301602052604081205461111f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561038c565b50600061038c565b6000818152600183016020526040812054801561121057600061114b600183611850565b855490915060009061115f90600190611850565b90508181146111c457600086600001828154811061117f5761117f611640565b90600052602060002001549050808760000184815481106111a2576111a2611640565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806111d5576111d5611bfa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061038c565b600091505061038c565b600080608083901c156112325760809290921c916010015b604083901c156112475760409290921c916008015b602083901c1561125c5760209290921c916004015b601083901c156112715760109290921c916002015b600883901c1561038c5760010192915050565b5080546000825560030290600052602060002090810190610adc91905b808211156112d65780546001600160a01b03191681556000600182018190556112cd60028301826112da565b506003016112a1565b5090565b5080546112e6906116b8565b6000825580601f106112f6575050565b601f016020900490600052602060002090810190610adc91905b808211156112d65760008155600101611310565b60006020828403121561133657600080fd5b81356001600160e01b03198116811461046d57600080fd5b60006020828403121561136057600080fd5b5035919050565b6001600160a01b0381168114610adc57600080fd5b6000806040838503121561138f57600080fd5b8235915060208301356113a181611367565b809150509250929050565b60008083601f8401126113be57600080fd5b50813567ffffffffffffffff8111156113d657600080fd5b6020830191508360208260051b85010111156113f157600080fd5b9250929050565b6000806020838503121561140b57600080fd5b823567ffffffffffffffff81111561142257600080fd5b61142e858286016113ac565b90969095509350505050565b6000806040838503121561144d57600080fd5b50508035926020909101359150565b60008060008060006060868803121561147457600080fd5b853561147f81611367565b9450602086013567ffffffffffffffff8082111561149c57600080fd5b6114a889838a016113ac565b909650945060408801359150808211156114c157600080fd5b506114ce888289016113ac565b969995985093965092949392505050565b600080600080606085870312156114f557600080fd5b84359350602085013561150781611367565b9250604085013567ffffffffffffffff8082111561152457600080fd5b818701915087601f83011261153857600080fd5b81358181111561154757600080fd5b88602082850101111561155957600080fd5b95989497505060200194505050565b60005b8381101561158357818101518382015260200161156b565b50506000910152565b600081518084526115a4816020860160208601611568565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561163257888303603f19018552815180516001600160a01b031684528781015188850152860151606087850181905261161e8186018361158c565b9689019694505050908601906001016115df565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166857600080fd5b813561046d81611367565b634e487b7160e01b600052601160045260246000fd5b60006001820161169b5761169b611673565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806116cc57607f821691505b6020821081036116ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103b857600081815260208120601f850160051c810160208610156117195750805b601f850160051c820191505b818110156105fd57828155600101611725565b67ffffffffffffffff831115611750576117506116a2565b6117648361175e83546116b8565b836116f2565b6000601f84116001811461179857600085156117805750838201355b600019600387901b1c1916600186901b1783556117f2565b600083815260209020601f19861690835b828110156117c957868501358255602094850194600190920191016117a9565b50868210156117e65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061184790830184866117f9565b95945050505050565b8181038181111561038c5761038c611673565b8082018082111561038c5761038c611673565b60008235605e1983360301811261188c57600080fd5b9190910192915050565b81356118a181611367565b81546001600160a01b0319166001600160a01b03919091161781556020828101356001838101919091559060028301604085013536869003601e190181126118e857600080fd5b8501803567ffffffffffffffff81111561190157600080fd5b803603848301131561191257600080fd5b6119268161192085546116b8565b856116f2565b6000601f82116001811461195c576000831561194457508382018601355b600019600385901b1c1916600184901b1785556119b5565b600085815260209020601f19841690835b8281101561198c5786850189013582559388019390890190880161196d565b50848210156119ab5760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b60208082528181018390526000906040808401600586901b8501820187855b8881101561163257878303603f190184528135368b9003605e19018112611a0557600080fd5b8a0160608135611a1481611367565b6001600160a01b0316855281880135888601528682013536839003601e19018112611a3e57600080fd5b90910187810191903567ffffffffffffffff811115611a5c57600080fd5b803603831315611a6b57600080fd5b8188870152611a7d82870182856117f9565b968901969550505091860191506001016119df565b808202811582820484141761038c5761038c611673565b600082611ac657634e487b7160e01b600052601260045260246000fd5b500490565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351611b1681602a850160208801611568565b660103b30b63ab2960cd1b602a918401918201528351611b3d816031840160208801611568565b01603101949350505050565b60208152600061046d602083018461158c565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611b94816017850160208801611568565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bc5816028840160208801611568565b01602801949350505050565b6000825161188c818460208701611568565b600081611bf257611bf2611673565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208d51978c729b6a9c0e0ecd5b61562f366dfd09974e656890ad9d58de84f6745264736f6c63430008150033", + "nonce": "0xc4", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionType": "CREATE", + "contractName": "TransparentProxyOZv4_9_5", + "contractAddress": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "function": null, + "arguments": [ + "0x70D1A6f75161e8D5De10E4AAa82AA1B423B4362a", + "0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03", + "0x91cbc73f0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b69" + ], + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x1f7438", + "value": "0x0", + "input": "0x608060405260405162000e4038038062000e4083398101604081905262000026916200042a565b8282828281620000398282600062000053565b506200004790508262000085565b5050505050506200055d565b6200005e83620000f7565b6000825111806200006c5750805b1562000080576200007e838362000139565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c760008051602062000df9833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000f48162000168565b50565b620001028162000206565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000161838360405180606001604052806027815260200162000e19602791396200029d565b9392505050565b6001600160a01b038116620001d35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000df98339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002755760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001ca565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001e5565b6060600080856001600160a01b031685604051620002bc91906200050a565b600060405180830381855af49150503d8060008114620002f9576040519150601f19603f3d011682016040523d82523d6000602084013e620002fe565b606091505b50909250905062000312868383876200031c565b9695505050505050565b606083156200039057825160000362000388576001600160a01b0385163b620003885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001ca565b50816200039c565b6200039c8383620003a4565b949350505050565b815115620003b55781518083602001fd5b8060405162461bcd60e51b8152600401620001ca919062000528565b80516001600160a01b0381168114620003e957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200042157818101518382015260200162000407565b50506000910152565b6000806000606084860312156200044057600080fd5b6200044b84620003d1565b92506200045b60208501620003d1565b60408501519092506001600160401b03808211156200047957600080fd5b818601915086601f8301126200048e57600080fd5b815181811115620004a357620004a3620003ee565b604051601f8201601f19908116603f01168101908382118183101715620004ce57620004ce620003ee565b81604052828152896020848701011115620004e857600080fd5b620004fb83602083016020880162000404565b80955050505050509250925092565b600082516200051e81846020870162000404565b9190910192915050565b60208152600082518060208401526200054981604085016020870162000404565b601f01601f19169190910160400192915050565b61088c806200056d6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083060279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e0565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e91906107fc565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff8082111561073357600080fd5b818501915085601f83011261074757600080fd5b813581811115610759576107596106e4565b604051601f8201601f19908116603f01168101908382118183101715610781576107816106e4565b8160405282815288602084870101111561079a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107d75781810151838201526020016107bf565b50506000910152565b600082516107f28184602087016107bc565b9190910192915050565b602081526000825180602084015261081b8160408501602087016107bc565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a207c78ed3af0a4f57ce2b6c2fd644d6f8debc43e54eebfade2164eaf01f76a464736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000070d1a6f75161e8d5de10e4aaa82aa1b423b4362a000000000000000000000000a3e7d085e65cb0b916f6717da876b7be5cc92f030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026491cbc73f0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b6900000000000000000000000000000000000000000000000000000000", + "nonce": "0xc5", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3db9a8", + "logs": [ + { + "address": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionIndex": "0xd", + "logIndex": "0x18", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000001000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000080000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionIndex": "0xd", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x29d133", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x57cb44", + "logs": [ + { + "address": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionIndex": "0xf", + "logIndex": "0x1b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000002000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionIndex": "0xf", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x190efa", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x67ce6c", + "logs": [ + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000070d1a6f75161e8d5de10e4aaa82aa1b423b4362a" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1d", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf2", + "0x000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1e", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf2", + "0x000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b69", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1f", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c00", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e000000000000000000000000000000000000000000000000000000", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3e7d085e65cb0b916f6717da876b7be5cc92f03", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x22", + "removed": false + } + ], + "logsBloom": "0x0000000400000000000084000000000040000000000000000000000000000000000000000000000000020000000002000000000000000000000000000000000c001200000000000000000000000002000000000000000000000000000002008000000000020000000000000000000800000000800000040000000000008080000000000000000000000000800000400000000000800080000000000000c00000000000000000000000004000000400000000000000000000001000000000000000000120000000000000000000040000000000080401000100000000000020000000000000000010000001000000000400000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x100328", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1720085014, + "chain": 2020, + "commit": "f9ce5ef" +} \ No newline at end of file diff --git a/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-latest.json b/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-latest.json new file mode 100644 index 0000000..7ed8dfb --- /dev/null +++ b/broadcast/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol/2020/run-latest.json @@ -0,0 +1,249 @@ +{ + "transactions": [ + { + "hash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionType": "CREATE", + "contractName": "RONRegistrarController", + "contractAddress": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843", + "function": null, + "arguments": null, + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x539db6", + "value": "0x0", + "input": "0x60806040526000805460ff19169055600180556200001c62000022565b620000e9565b60005462010000900460ff1615620000905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600054610100900460ff90811614620000e7576000805461ff00191661ff0017905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612fbc80620000f96000396000f3fe6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a6102453660046120d0565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120fa565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d610358366004612128565b610745565b005b34801561036b57600080fd5b5061035d61037a366004612128565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b8366004612128565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612158565b610815565b61035d61043b36600461218a565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d61047336600461220c565b6109d8565b34801561048457600080fd5b5061035d610493366004612313565b610b80565b3480156104a457600080fd5b5061035d610cb9565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d93660046124a3565b610cd9565b3480156104ea57600080fd5b506102a26104f936600461255e565b610e3a565b34801561050a57600080fd5b5061024a610519366004612128565b610e59565b34801561052a57600080fd5b5061024a610539366004612580565b610e84565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e366004612580565b610f12565b34801561057f57600080fd5b5061027361058e3660046125bc565b610f9d565b34801561059f57600080fd5b5061035d6105ae3660046120fa565b61104d565b3480156105bf57600080fd5b506103086105ce3660046120fa565b611061565b61035d6105e1366004612602565b611078565b3480156105f257600080fd5b5061035d610601366004612128565b611184565b34801561061257600080fd5b50610308610621366004612602565b6111a9565b34801561063257600080fd5b5061035d61064136600461255e565b611235565b34801561065257600080fd5b50610308600080516020612f6783398151915281565b34801561067457600080fd5b5061035d610683366004612158565b61124a565b34801561069457600080fd5b5061035d6106a33660046120fa565b61125e565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f7366004612580565b6112b7565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f826112f4565b92915050565b60008281526002602052604090206001015461076081611329565b61076a8383611333565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611355565b5050565b600080516020612f6783398151915261080a81611329565b610812611377565b50565b600061082081611329565b6107ee826113c9565b610831611420565b610839611468565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610f9d915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac82346126dc565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112b792505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097391906126ef565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab9493929190612735565b60405180910390a282156109c3576109c333846114c1565b6109cb611526565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f678339815191528b61153c565b610aca60008c61153c565b610ad3836113c9565b610adc86611546565b610ae6878961157d565b610aef89611607565b603a80546001600160a01b038088166001600160a01b031992831617909255603b8054878416908316179055603d8054928516929091169190911790558015610b73576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610baa81611329565b84801580610bb85750808414155b15610bd657604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c665783603f60008a8a85818110610bf857610bf8612769565b9050602002013581526020019081526020016000206000888885818110610c2157610c21612769565b9050602002016020810190610c369190612158565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bd9565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610ca895949392919061277f565b60405180910390a250505050505050565b600080516020612f67833981519152610cd181611329565b610812611678565b610ce1611420565b610ce9611468565b86610cf3816116b5565b610cfc88610f12565b610d1b57876040516308eee0fd60e31b81526004016107db9190612869565b6000610d26896112b7565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9d9190810190612936565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dda575080155b15610e00578a8a8383604051631fc5717160e01b81526004016107db9493929190612a18565b600080610e0d8d8c6116dd565b91509150610e228d8d8d8d8d8d8d8989611735565b505050505050610e3160018055565b50505050505050565b6000828152600360205260408120610e52908361185f565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e918361186b565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610eca908590600401612869565b602060405180830381865afa158015610ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612a52565b1592915050565b6000610f1d82610e84565b801561073f5750603a546001600160a01b03166396e494e8610f3e846112b7565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b602060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f9190612a52565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fd89089908990600401612a6f565b608060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612aca565b8051825192945090925061102c91612aff565b9350806020015182602001516110429190612aff565b925050509250929050565b600061105881611329565b6107ee82611546565b600081815260036020526040812061073f90611959565b611080611420565b611088611468565b6000611093896112b7565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111059190810190612936565b60200151606001511561112d57886040516331597a5760e21b81526004016107db9190612869565b600061113f8a8a8a8a8a8a8a8a6111a9565b905061114b8882611963565b6000806111588c8b6116dd565b9150915061116d8c8c8c8b8b8b8b8989611735565b5050505061117a60018055565b5050505050505050565b60008281526002602052604090206001015461119f81611329565b61076a8383611355565b6000886111b5816116b5565b83158015906111cb57506001600160a01b038616155b156111e9576040516334fd817160e21b815260040160405180910390fd5b6111f28a6112b7565b89898989898989604051602001611210989796959493929190612ba3565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124081611329565b61076a838361157d565b600061125581611329565b6107ee82611607565b611266611420565b6037546000828152603e6020526040902054429161128391612aff565b106112a457604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b6108128133611a14565b61133d8282611a47565b600082815260036020526040902061076a9082611acd565b61135f8282611ae2565b600082815260036020526040902061076a9082611b49565b61137f611b5e565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114665760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114ba5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114cd8383611ba7565b90508061076a576114e6836001600160a01b0316611c1d565b6114ef83611c33565b604051602001611500929190612c03565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612869565b603954611466906001600160a01b0316476114c1565b6107ee8282611333565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611415565b4281111561159e57604051630b4319e560e21b815260040160405180910390fd5b8181116115be576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b6001600160a01b03811661162e5760405163e99d5ac560e01b815260040160405180910390fd5b603980546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b611680611420565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ac3390565b6116be81610f12565b61081257806040516308eee0fd60e31b81526004016107db9190612869565b6000806116ea8484610f9d565b9092509050348111156117105760405163044044a560e21b815260040160405180910390fd5b348181039082146117255761172533826114c1565b5061172e611526565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b81526004016117a1959493929190612c81565b60408051808303816000875af11580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612ccc565b909250905085156117fa576117fa88828989611c4a565b841561180a5761180a8b8b611cc8565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d86888760405161184a9493929190612cfa565b60405180910390a35050505050505050505050565b6000610e528383611d5f565b600080600080845190505b8083101561195157600085848151811061189257611892612769565b01602001516001600160f81b0319169050600160ff1b8110156118ba57600184019350611945565b600760fd1b6001600160f81b0319821610156118db57600284019350611945565b600f60fc1b6001600160f81b0319821610156118fc57600384019350611945565b601f60fb1b6001600160f81b03198216101561191d57600484019350611945565b603f60fa1b6001600160f81b03198216101561193e57600584019350611945565b6006840193505b50600190910190611876565b509392505050565b600061073f825490565b603854826001600160401b0316101561199a576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119b390426126dc565b90506036548110156119db57604051635320bcf960e01b8152600481018390526024016107db565b806037541015611a015760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b611a1e8282610e59565b6107ee57611a2b81611c1d565b611a36836020611d89565b604051602001611500929190612d32565b611a518282610e59565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e52836001600160a01b038416611f24565b611aec8282610e59565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e52836001600160a01b038416611f73565b60005460ff166114665760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611bd19190612da7565b60006040518083038185875af1925050503d8060008114611c0e576040519150601f19603f3d011682016040523d82523d6000602084013e611c13565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d89565b606061073f82611c4284612066565b600101611d89565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c7a90869086908690600401612dc3565b6000604051808303816000875af1158015611c99573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cc19190810190612de6565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611cf0908690602001612ebd565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611d1c929190612ee5565b6020604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612f09565b6000826000018281548110611d7657611d76612769565b9060005260206000200154905092915050565b60606000611d98836002612f22565b611da3906002612aff565b6001600160401b03811115611dba57611dba612396565b6040519080825280601f01601f191660200182016040528015611de4576020820181803683370190505b509050600360fc1b81600081518110611dff57611dff612769565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e2e57611e2e612769565b60200101906001600160f81b031916908160001a9053506000611e52846002612f22565b611e5d906001612aff565b90505b6001811115611ed5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e9157611e91612769565b1a60f81b828281518110611ea757611ea7612769565b60200101906001600160f81b031916908160001a90535060049490941c93611ece81612f39565b9050611e60565b508315610e525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f6b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b6000818152600183016020526040812054801561205c576000611f976001836126dc565b8554909150600090611fab906001906126dc565b9050818114612010576000866000018281548110611fcb57611fcb612769565b9060005260206000200154905080876000018481548110611fee57611fee612769565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061202157612021612f50565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561207e5760809290921c916010015b604083901c156120935760409290921c916008015b602083901c156120a85760209290921c916004015b601083901c156120bd5760109290921c916002015b600883901c1561073f5760010192915050565b6000602082840312156120e257600080fd5b81356001600160e01b031981168114610e5257600080fd5b60006020828403121561210c57600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b6000806040838503121561213b57600080fd5b82359150602083013561214d81612113565b809150509250929050565b60006020828403121561216a57600080fd5b8135610e5281612113565b6001600160401b038116811461081257600080fd5b60008060006040848603121561219f57600080fd5b83356001600160401b03808211156121b657600080fd5b818601915086601f8301126121ca57600080fd5b8135818111156121d957600080fd5b8760208285010111156121eb57600080fd5b6020928301955093505084013561220181612175565b809150509250925092565b6000806000806000806000806000806101408b8d03121561222c57600080fd5b8a3561223781612113565b995060208b013561224781612113565b985060408b013561225781612113565b975060608b0135965060808b0135955060a08b0135945060c08b013561227c81612113565b935060e08b013561228c81612113565b92506101008b013561229d81612113565b91506101208b01356122ae81612113565b809150509295989b9194979a5092959850565b60008083601f8401126122d357600080fd5b5081356001600160401b038111156122ea57600080fd5b6020830191508360208260051b850101111561172e57600080fd5b801515811461081257600080fd5b60008060008060006060868803121561232b57600080fd5b85356001600160401b038082111561234257600080fd5b61234e89838a016122c1565b9097509550602088013591508082111561236757600080fd5b50612374888289016122c1565b909450925050604086013561238881612305565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156123ce576123ce612396565b60405290565b604051606081016001600160401b03811182821017156123ce576123ce612396565b604051601f8201601f191681016001600160401b038111828210171561241e5761241e612396565b604052919050565b60006001600160401b0382111561243f5761243f612396565b50601f01601f191660200190565b600082601f83011261245e57600080fd5b813561247161246c82612426565b6123f6565b81815284602083860101111561248657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a0312156124be57600080fd5b87356001600160401b03808211156124d557600080fd5b6124e18b838c0161244d565b985060208a013591506124f382612113565b90965060408901359061250582612175565b90955060608901359061251782612113565b9094506080890135908082111561252d57600080fd5b5061253a8a828b016122c1565b90945092505060a088013561254e81612305565b8091505092959891949750929550565b6000806040838503121561257157600080fd5b50508035926020909101359150565b60006020828403121561259257600080fd5b81356001600160401b038111156125a857600080fd5b6125b48482850161244d565b949350505050565b600080604083850312156125cf57600080fd5b82356001600160401b038111156125e557600080fd5b6125f18582860161244d565b925050602083013561214d81612175565b60008060008060008060008060e0898b03121561261e57600080fd5b88356001600160401b038082111561263557600080fd5b6126418c838d0161244d565b995060208b0135915061265382612113565b90975060408a01359061266582612175565b90965060608a0135955060808a01359061267e82612113565b90945060a08a0135908082111561269457600080fd5b506126a18b828c016122c1565b90945092505060c08901356126b581612305565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f6126c6565b60006020828403121561270157600080fd5b8151610e5281612175565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061274960608301868861270c565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561279f57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127fc5783356127df81612113565b6001600160a01b03168152928101926001929092019181016127cc565b8615156040870152935061280f92505050565b9695505050505050565b60005b8381101561283457818101518382015260200161281c565b50506000910152565b60008151808452612855816020860160208601612819565b601f01601f19169290920160200192915050565b602081526000610e52602083018461283d565b600061288a61246c84612426565b905082815283838301111561289e57600080fd5b610e52836020830184612819565b6000608082840312156128be57600080fd5b604051608081018181106001600160401b03821117156128e0576128e0612396565b806040525080915082516128f381612113565b8152602083015161290381612113565b6020820152604083015161291681612175565b6040820152606083015161292981612305565b6060919091015292915050565b6000602080838503121561294957600080fd5b82516001600160401b038082111561296057600080fd5b9084019060a0828703121561297457600080fd5b61297c6123ac565b82518281111561298b57600080fd5b83016060818903121561299d57600080fd5b6129a56123d4565b815160ff811681146129b657600080fd5b815281860151868201526040820151848111156129d257600080fd5b82019350601f840189136129e557600080fd5b6129f389855188870161287c565b6040820152825250612a07878486016128ac565b848201528094505050505092915050565b608081526000612a2b608083018761283d565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a6457600080fd5b8151610e5281612305565b604081526000612a82604083018561283d565b90506001600160401b03831660208301529392505050565b600060408284031215612aac57600080fd5b612ab46123ac565b9050815181526020820151602082015292915050565b60008060808385031215612add57600080fd5b612ae78484612a9a565b9150612af68460408501612a9a565b90509250929050565b8082018082111561073f5761073f6126c6565b81835260006020808501808196508560051b810191508460005b87811015612b965782840389528135601e19883603018112612b4d57600080fd5b870185810190356001600160401b03811115612b6857600080fd5b803603821315612b7757600080fd5b612b8286828461270c565b9a87019a9550505090840190600101612b2c565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612bec9083018587612b12565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612c4e81602a850160208801612819565b660103b30b63ab2960cd1b602a918401918201528351612c75816031840160208801612819565b01603101949350505050565b85815260a060208201526000612c9a60a083018761283d565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612cdf57600080fd5b8251612cea81612175565b6020939093015192949293505050565b608081526000612d0d608083018761283d565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d6a816017850160208801612819565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d9b816028840160208801612819565b01602801949350505050565b60008251612db9818460208701612819565b9190910192915050565b838152604060208201526000612ddd604083018486612b12565b95945050505050565b60006020808385031215612df957600080fd5b82516001600160401b0380821115612e1057600080fd5b818501915085601f830112612e2457600080fd5b815181811115612e3657612e36612396565b8060051b612e458582016123f6565b9182528381018501918581019089841115612e5f57600080fd5b86860192505b83831015612eb057825185811115612e7d5760008081fd5b8601603f81018b13612e8f5760008081fd5b612ea08b898301516040840161287c565b8352509186019190860190612e65565b9998505050505050505050565b60008251612ecf818460208701612819565b63173937b760e11b920191825250600401919050565b6001600160a01b03831681526040602082018190526000906125b49083018461283d565b600060208284031215612f1b57600080fd5b5051919050565b808202811582820484141761073f5761073f6126c6565b600081612f4857612f486126c6565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa26469706673582212203a109c3a44f7a0139823c421a40975bf8029ef66d689d4458e4d45cf8a5dbf8264736f6c63430008150033", + "nonce": "0xc3", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionType": "CREATE", + "contractName": "RNSCommission", + "contractAddress": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a", + "function": null, + "arguments": null, + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x321ebc", + "value": "0x0", + "input": "0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611c46806100ec6000396000f3fe6080604052600436106100ec5760003560e01c806391cbc73f1161008a578063c42ef38c11610059578063c42ef38c14610297578063ca15c873146102cb578063d547741f146102eb578063e92108b51461030b57600080fd5b806391cbc73f1461022257806391d14854146102425780639fd50e5814610262578063a217fddf1461028257600080fd5b806336568abe116100c657806336568abe146101945780634c255c97146101b45780635dc30fe5146101ca5780639010d07c146101ea57600080fd5b806301ffc9a714610100578063248a9ca3146101355780632f2ff15d1461017457600080fd5b366100fb576100f961032d565b005b600080fd5b34801561010c57600080fd5b5061012061011b366004611324565b610367565b60405190151581526020015b60405180910390f35b34801561014157600080fd5b5061016661015036600461134e565b6000908152600160208190526040909120015490565b60405190815260200161012c565b34801561018057600080fd5b506100f961018f36600461137c565b610392565b3480156101a057600080fd5b506100f96101af36600461137c565b6103bd565b3480156101c057600080fd5b5061016661271081565b3480156101d657600080fd5b506100f96101e53660046113f8565b610440565b3480156101f657600080fd5b5061020a61020536600461143a565b610455565b6040516001600160a01b03909116815260200161012c565b34801561022e57600080fd5b506100f961023d36600461145c565b610474565b34801561024e57600080fd5b5061012061025d36600461137c565b610605565b34801561026e57600080fd5b506100f961027d3660046114df565b610630565b34801561028e57600080fd5b50610166600081565b3480156102a357600080fd5b506101667f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf281565b3480156102d757600080fd5b506101666102e636600461134e565b61074e565b3480156102f757600080fd5b506100f961030636600461137c565b610765565b34801561031757600080fd5b5061032061078b565b60405161012c91906115b8565b6103577f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf233610605565b15610365576103653461089c565b565b60006001600160e01b03198216635a05180f60e01b148061038c575061038c82610a9d565b92915050565b600082815260016020819052604090912001546103ae81610ad2565b6103b88383610adf565b505050565b6001600160a01b03811633146104325760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043c8282610b01565b5050565b600061044b81610ad2565b6103b88383610b23565b600082815260026020526040812061046d9083610ca6565b9392505050565b600054610100900460ff16158080156104945750600054600160ff909116105b806104ae5750303b1580156104ae575060005460ff166001145b6105115760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610429565b6000805460ff191660011790558015610534576000805461ff0019166101001790555b61053f600087610cb2565b8160005b818110156105ab5761059b7f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf286868481811061058157610581611640565b90506020020160208101906105969190611656565b610cb2565b6105a481611689565b9050610543565b506105b68686610b23565b5080156105fd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061063b81610ad2565b603554851061065d57604051634ec4810560e11b815260040160405180910390fd5b6001600160a01b0384166106845760405163e99d5ac560e01b815260040160405180910390fd5b836035868154811061069857610698611640565b906000526020600020906003020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508282603587815481106106e2576106e2611640565b90600052602060002090600302016002019182610700929190611738565b5084336001600160a01b03167faa3076bb2e00a425a96ce6aa8762a984fe8ed14922e3fba98cfa90683cb05ff886868660405161073f93929190611822565b60405180910390a35050505050565b600081815260026020526040812061038c90610cbc565b6000828152600160208190526040909120015461078181610ad2565b6103b88383610b01565b60606035805480602002602001604051908101604052809291908181526020016000905b82821015610893576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018101549383019390935260028301805492939291840191610802906116b8565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906116b8565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b505050505081525050815260200190600101906107af565b50505050905090565b806000036108bd576040516370bf851360e11b815260040160405180910390fd5b60355460008190036108e257604051634ec4810560e11b815260040160405180910390fd5b60006108ef600183611850565b90506000805b828110156109e457600061092d866035848154811061091657610916611640565b906000526020600020906003020160010154610cc6565b90506109398184611863565b92506109716035838154811061095157610951611640565b60009182526020909120600390910201546001600160a01b031682610cdf565b6035828154811061098457610984611640565b6000918252602091829020600390910201546040518381526001600160a01b03909116917fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af910160405180910390a2506109dd81611689565b90506108f5565b5083811015610a9757610a2c60358381548110610a0357610a03611640565b60009182526020909120600390910201546001600160a01b0316610a278387611850565b610cdf565b60358281548110610a3f57610a3f611640565b60009182526020909120600390910201546001600160a01b03167fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af610a848387611850565b6040519081526020015b60405180910390a25b50505050565b60006001600160e01b03198216637965db0b60e01b148061038c57506301ffc9a760e01b6001600160e01b031983161461038c565b610adc8133610d44565b50565b610ae98282610d77565b60008281526002602052604090206103b89082610de2565b610b0b8282610df7565b60008281526002602052604090206103b89082610e5e565b806000819003610b4657604051634ec4810560e11b815260040160405180910390fd5b610b5260356000611284565b6000805b82811015610c48576000858583818110610b7257610b72611640565b9050602002810190610b849190611876565b610b92906020810190611656565b6001600160a01b031603610bb95760405163e99d5ac560e01b815260040160405180910390fd5b848482818110610bcb57610bcb611640565b9050602002810190610bdd9190611876565b610beb906020013583611863565b91506035858583818110610c0157610c01611640565b9050602002810190610c139190611876565b815460018101835560009283526020909220909160030201610c358282611896565b505080610c4190611689565b9050610b56565b506127108114610c6b5760405163648564d360e01b815260040160405180910390fd5b336001600160a01b03167f28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c008585604051610a8e9291906119c0565b600061046d8383610e73565b61043c8282610adf565b600061038c825490565b6000612710610cd58385611a92565b61046d9190611aa9565b6000610ceb8383610e9d565b9050806103b857610d04836001600160a01b0316610f13565b610d0d83610f29565b604051602001610d1e929190611acb565b60408051601f198184030181529082905262461bcd60e51b825261042991600401611b49565b610d4e8282610605565b61043c57610d5b81610f13565b610d66836020610f3c565b604051602001610d1e929190611b5c565b610d818282610605565b61043c5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600061046d836001600160a01b0384166110d8565b610e018282610605565b1561043c5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061046d836001600160a01b038416611127565b6000826000018281548110610e8a57610e8a611640565b9060005260206000200154905092915050565b604080516000808252602082019092526001600160a01b038416908390604051610ec79190611bd1565b60006040518083038185875af1925050503d8060008114610f04576040519150601f19603f3d011682016040523d82523d6000602084013e610f09565b606091505b5090949350505050565b606061038c6001600160a01b0383166014610f3c565b606061038c82610f388461121a565b6001015b60606000610f4b836002611a92565b610f56906002611863565b67ffffffffffffffff811115610f6e57610f6e6116a2565b6040519080825280601f01601f191660200182016040528015610f98576020820181803683370190505b509050600360fc1b81600081518110610fb357610fb3611640565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610fe257610fe2611640565b60200101906001600160f81b031916908160001a9053506000611006846002611a92565b611011906001611863565b90505b6001811115611089576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061104557611045611640565b1a60f81b82828151811061105b5761105b611640565b60200101906001600160f81b031916908160001a90535060049490941c9361108281611be3565b9050611014565b50831561046d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610429565b600081815260018301602052604081205461111f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561038c565b50600061038c565b6000818152600183016020526040812054801561121057600061114b600183611850565b855490915060009061115f90600190611850565b90508181146111c457600086600001828154811061117f5761117f611640565b90600052602060002001549050808760000184815481106111a2576111a2611640565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806111d5576111d5611bfa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061038c565b600091505061038c565b600080608083901c156112325760809290921c916010015b604083901c156112475760409290921c916008015b602083901c1561125c5760209290921c916004015b601083901c156112715760109290921c916002015b600883901c1561038c5760010192915050565b5080546000825560030290600052602060002090810190610adc91905b808211156112d65780546001600160a01b03191681556000600182018190556112cd60028301826112da565b506003016112a1565b5090565b5080546112e6906116b8565b6000825580601f106112f6575050565b601f016020900490600052602060002090810190610adc91905b808211156112d65760008155600101611310565b60006020828403121561133657600080fd5b81356001600160e01b03198116811461046d57600080fd5b60006020828403121561136057600080fd5b5035919050565b6001600160a01b0381168114610adc57600080fd5b6000806040838503121561138f57600080fd5b8235915060208301356113a181611367565b809150509250929050565b60008083601f8401126113be57600080fd5b50813567ffffffffffffffff8111156113d657600080fd5b6020830191508360208260051b85010111156113f157600080fd5b9250929050565b6000806020838503121561140b57600080fd5b823567ffffffffffffffff81111561142257600080fd5b61142e858286016113ac565b90969095509350505050565b6000806040838503121561144d57600080fd5b50508035926020909101359150565b60008060008060006060868803121561147457600080fd5b853561147f81611367565b9450602086013567ffffffffffffffff8082111561149c57600080fd5b6114a889838a016113ac565b909650945060408801359150808211156114c157600080fd5b506114ce888289016113ac565b969995985093965092949392505050565b600080600080606085870312156114f557600080fd5b84359350602085013561150781611367565b9250604085013567ffffffffffffffff8082111561152457600080fd5b818701915087601f83011261153857600080fd5b81358181111561154757600080fd5b88602082850101111561155957600080fd5b95989497505060200194505050565b60005b8381101561158357818101518382015260200161156b565b50506000910152565b600081518084526115a4816020860160208601611568565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561163257888303603f19018552815180516001600160a01b031684528781015188850152860151606087850181905261161e8186018361158c565b9689019694505050908601906001016115df565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166857600080fd5b813561046d81611367565b634e487b7160e01b600052601160045260246000fd5b60006001820161169b5761169b611673565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806116cc57607f821691505b6020821081036116ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103b857600081815260208120601f850160051c810160208610156117195750805b601f850160051c820191505b818110156105fd57828155600101611725565b67ffffffffffffffff831115611750576117506116a2565b6117648361175e83546116b8565b836116f2565b6000601f84116001811461179857600085156117805750838201355b600019600387901b1c1916600186901b1783556117f2565b600083815260209020601f19861690835b828110156117c957868501358255602094850194600190920191016117a9565b50868210156117e65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061184790830184866117f9565b95945050505050565b8181038181111561038c5761038c611673565b8082018082111561038c5761038c611673565b60008235605e1983360301811261188c57600080fd5b9190910192915050565b81356118a181611367565b81546001600160a01b0319166001600160a01b03919091161781556020828101356001838101919091559060028301604085013536869003601e190181126118e857600080fd5b8501803567ffffffffffffffff81111561190157600080fd5b803603848301131561191257600080fd5b6119268161192085546116b8565b856116f2565b6000601f82116001811461195c576000831561194457508382018601355b600019600385901b1c1916600184901b1785556119b5565b600085815260209020601f19841690835b8281101561198c5786850189013582559388019390890190880161196d565b50848210156119ab5760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b60208082528181018390526000906040808401600586901b8501820187855b8881101561163257878303603f190184528135368b9003605e19018112611a0557600080fd5b8a0160608135611a1481611367565b6001600160a01b0316855281880135888601528682013536839003601e19018112611a3e57600080fd5b90910187810191903567ffffffffffffffff811115611a5c57600080fd5b803603831315611a6b57600080fd5b8188870152611a7d82870182856117f9565b968901969550505091860191506001016119df565b808202811582820484141761038c5761038c611673565b600082611ac657634e487b7160e01b600052601260045260246000fd5b500490565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351611b1681602a850160208801611568565b660103b30b63ab2960cd1b602a918401918201528351611b3d816031840160208801611568565b01603101949350505050565b60208152600061046d602083018461158c565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611b94816017850160208801611568565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bc5816028840160208801611568565b01602801949350505050565b6000825161188c818460208701611568565b600081611bf257611bf2611673565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208d51978c729b6a9c0e0ecd5b61562f366dfd09974e656890ad9d58de84f6745264736f6c63430008150033", + "nonce": "0xc4", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionType": "CREATE", + "contractName": "TransparentProxyOZv4_9_5", + "contractAddress": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "function": null, + "arguments": [ + "0x70D1A6f75161e8D5De10E4AAa82AA1B423B4362a", + "0xA3e7d085E65CB0B916f6717da876b7bE5cC92f03", + "0x91cbc73f0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b69" + ], + "transaction": { + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "gas": "0x1f7438", + "value": "0x0", + "input": "0x608060405260405162000e4038038062000e4083398101604081905262000026916200042a565b8282828281620000398282600062000053565b506200004790508262000085565b5050505050506200055d565b6200005e83620000f7565b6000825111806200006c5750805b1562000080576200007e838362000139565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c760008051602062000df9833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000f48162000168565b50565b620001028162000206565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000161838360405180606001604052806027815260200162000e19602791396200029d565b9392505050565b6001600160a01b038116620001d35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000df98339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002755760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001ca565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001e5565b6060600080856001600160a01b031685604051620002bc91906200050a565b600060405180830381855af49150503d8060008114620002f9576040519150601f19603f3d011682016040523d82523d6000602084013e620002fe565b606091505b50909250905062000312868383876200031c565b9695505050505050565b606083156200039057825160000362000388576001600160a01b0385163b620003885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001ca565b50816200039c565b6200039c8383620003a4565b949350505050565b815115620003b55781518083602001fd5b8060405162461bcd60e51b8152600401620001ca919062000528565b80516001600160a01b0381168114620003e957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200042157818101518382015260200162000407565b50506000910152565b6000806000606084860312156200044057600080fd5b6200044b84620003d1565b92506200045b60208501620003d1565b60408501519092506001600160401b03808211156200047957600080fd5b818601915086601f8301126200048e57600080fd5b815181811115620004a357620004a3620003ee565b604051601f8201601f19908116603f01168101908382118183101715620004ce57620004ce620003ee565b81604052828152896020848701011115620004e857600080fd5b620004fb83602083016020880162000404565b80955050505050509250925092565b600082516200051e81846020870162000404565b9190910192915050565b60208152600082518060208401526200054981604085016020870162000404565b601f01601f19169190910160400192915050565b61088c806200056d6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083060279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e0565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e91906107fc565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff8082111561073357600080fd5b818501915085601f83011261074757600080fd5b813581811115610759576107596106e4565b604051601f8201601f19908116603f01168101908382118183101715610781576107816106e4565b8160405282815288602084870101111561079a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107d75781810151838201526020016107bf565b50506000910152565b600082516107f28184602087016107bc565b9190910192915050565b602081526000825180602084015261081b8160408501602087016107bc565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a207c78ed3af0a4f57ce2b6c2fd644d6f8debc43e54eebfade2164eaf01f76a464736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656400000000000000000000000070d1a6f75161e8d5de10e4aaa82aa1b423b4362a000000000000000000000000a3e7d085e65cb0b916f6717da876b7be5cc92f030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026491cbc73f0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b6900000000000000000000000000000000000000000000000000000000", + "nonce": "0xc5", + "chainId": "0x7e4" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3db9a8", + "logs": [ + { + "address": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionIndex": "0xd", + "logIndex": "0x18", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000001000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000080000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x9f9f771939bb8dead3af08a54cdd9cadb3d73f4ff262b7b45f78892aa23ecbd3", + "transactionIndex": "0xd", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x29d133", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0xaae506b2232eaea59238ffe501a9e6cfc8f9b843" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x57cb44", + "logs": [ + { + "address": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionIndex": "0xf", + "logIndex": "0x1b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000002000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xe2c4410ccfba32563c6cb57a157abc41ecfd9cb8e314a4655c774b3e59013bca", + "transactionIndex": "0xf", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x190efa", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0x70d1a6f75161e8d5de10e4aaa82aa1b423b4362a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x67ce6c", + "logs": [ + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000070d1a6f75161e8d5de10e4aaa82aa1b423b4362a" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1d", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf2", + "0x000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1e", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "0x76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf2", + "0x000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b69", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x1f", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c00", + "0x0000000000000000000000004d58ea7231c394d5804e8b06b1365915f906e27f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e000000000000000000000000000000000000000000000000000000", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a3e7d085e65cb0b916f6717da876b7be5cc92f03", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "logIndex": "0x22", + "removed": false + } + ], + "logsBloom": "0x0000000400000000000084000000000040000000000000000000000000000000000000000000000000020000000002000000000000000000000000000000000c001200000000000000000000000002000000000000000000000000000002008000000000020000000000000000000800000000800000040000000000008080000000000000000000000000800000400000000000800080000000000000c00000000000000000000000004000000400000000000000000000001000000000000000000120000000000000000000040000000000080401000100000000000020000000000000000010000001000000000400000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xdb1386ccc58cd4475bd7a92c12b447095c7730249e47994983d92b205972be58", + "transactionIndex": "0x10", + "blockHash": "0x07023c4124c015a4d9d05b0f77b352b69ff032cee820c0a0cdf22bed08a487b3", + "blockNumber": "0x2269843", + "gasUsed": "0x100328", + "effectiveGasPrice": "0x4a817c800", + "from": "0x4d58ea7231c394d5804e8b06b1365915f906e27f", + "to": null, + "contractAddress": "0x1bece3a948c14eefbaace67fe6f51cd21b79aa21" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1720085014, + "chain": 2020, + "commit": "f9ce5ef" +} \ No newline at end of file diff --git a/deployments/ronin-mainnet/RNSCommissionLogic.json b/deployments/ronin-mainnet/RNSCommissionLogic.json new file mode 100644 index 0000000..e943fc0 --- /dev/null +++ b/deployments/ronin-mainnet/RNSCommissionLogic.json @@ -0,0 +1,858 @@ +{ + "abi": [ + { + "type": "constructor", + "inputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "function", + "name": "DEFAULT_ADMIN_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "MAX_PERCENTAGE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "SENDER_ROLE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getCommissions", + "inputs": [], + "outputs": [ + { + "name": "commissionInfos", + "type": "tuple[]", + "internalType": "struct INSCommission.Commission[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "ratio", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "name", + "type": "string", + "internalType": "string" + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRoleAdmin", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRoleMember", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRoleMemberCount", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "grantRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "hasRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "admin", + "type": "address", + "internalType": "address" + }, + { + "name": "commissionInfos", + "type": "tuple[]", + "internalType": "struct INSCommission.Commission[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "ratio", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "name", + "type": "string", + "internalType": "string" + } + ] + }, + { + "name": "allowedSenders", + "type": "address[]", + "internalType": "address[]" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "renounceRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "revokeRole", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setCommissionInfo", + "inputs": [ + { + "name": "commissionIdx", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "newRecipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "newName", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setCommissions", + "inputs": [ + { + "name": "commissionInfos", + "type": "tuple[]", + "internalType": "struct INSCommission.Commission[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "ratio", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "name", + "type": "string", + "internalType": "string" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "supportsInterface", + "inputs": [ + { + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "CommissionInfoUpdated", + "inputs": [ + { + "name": "updatedBy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "commissionIdx", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "newRecipient", + "type": "address", + "indexed": false, + "internalType": "address payable" + }, + { + "name": "newName", + "type": "string", + "indexed": false, + "internalType": "string" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "CommissionsUpdated", + "inputs": [ + { + "name": "updatedBy", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "commissionInfos", + "type": "tuple[]", + "indexed": false, + "internalType": "struct INSCommission.Commission[]", + "components": [ + { + "name": "recipient", + "type": "address", + "internalType": "address payable" + }, + { + "name": "ratio", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "name", + "type": "string", + "internalType": "string" + } + ] + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Distributed", + "inputs": [ + { + "name": "recipient", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "commissionAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleAdminChanged", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "previousAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "newAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleGranted", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleRevoked", + "inputs": [ + { + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "InvalidAmountOfRON", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidArrayLength", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidRatio", + "inputs": [] + }, + { + "type": "error", + "name": "NullAddress", + "inputs": [] + } + ], + "absolutePath": "RNSCommission.sol", + "address": "0x70D1A6f75161e8D5De10E4AAa82AA1B423B4362a", + "ast": "", + "blockNumber": 36083767, + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611c46806100ec6000396000f3fe6080604052600436106100ec5760003560e01c806391cbc73f1161008a578063c42ef38c11610059578063c42ef38c14610297578063ca15c873146102cb578063d547741f146102eb578063e92108b51461030b57600080fd5b806391cbc73f1461022257806391d14854146102425780639fd50e5814610262578063a217fddf1461028257600080fd5b806336568abe116100c657806336568abe146101945780634c255c97146101b45780635dc30fe5146101ca5780639010d07c146101ea57600080fd5b806301ffc9a714610100578063248a9ca3146101355780632f2ff15d1461017457600080fd5b366100fb576100f961032d565b005b600080fd5b34801561010c57600080fd5b5061012061011b366004611324565b610367565b60405190151581526020015b60405180910390f35b34801561014157600080fd5b5061016661015036600461134e565b6000908152600160208190526040909120015490565b60405190815260200161012c565b34801561018057600080fd5b506100f961018f36600461137c565b610392565b3480156101a057600080fd5b506100f96101af36600461137c565b6103bd565b3480156101c057600080fd5b5061016661271081565b3480156101d657600080fd5b506100f96101e53660046113f8565b610440565b3480156101f657600080fd5b5061020a61020536600461143a565b610455565b6040516001600160a01b03909116815260200161012c565b34801561022e57600080fd5b506100f961023d36600461145c565b610474565b34801561024e57600080fd5b5061012061025d36600461137c565b610605565b34801561026e57600080fd5b506100f961027d3660046114df565b610630565b34801561028e57600080fd5b50610166600081565b3480156102a357600080fd5b506101667f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf281565b3480156102d757600080fd5b506101666102e636600461134e565b61074e565b3480156102f757600080fd5b506100f961030636600461137c565b610765565b34801561031757600080fd5b5061032061078b565b60405161012c91906115b8565b6103577f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf233610605565b15610365576103653461089c565b565b60006001600160e01b03198216635a05180f60e01b148061038c575061038c82610a9d565b92915050565b600082815260016020819052604090912001546103ae81610ad2565b6103b88383610adf565b505050565b6001600160a01b03811633146104325760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043c8282610b01565b5050565b600061044b81610ad2565b6103b88383610b23565b600082815260026020526040812061046d9083610ca6565b9392505050565b600054610100900460ff16158080156104945750600054600160ff909116105b806104ae5750303b1580156104ae575060005460ff166001145b6105115760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610429565b6000805460ff191660011790558015610534576000805461ff0019166101001790555b61053f600087610cb2565b8160005b818110156105ab5761059b7f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf286868481811061058157610581611640565b90506020020160208101906105969190611656565b610cb2565b6105a481611689565b9050610543565b506105b68686610b23565b5080156105fd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061063b81610ad2565b603554851061065d57604051634ec4810560e11b815260040160405180910390fd5b6001600160a01b0384166106845760405163e99d5ac560e01b815260040160405180910390fd5b836035868154811061069857610698611640565b906000526020600020906003020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508282603587815481106106e2576106e2611640565b90600052602060002090600302016002019182610700929190611738565b5084336001600160a01b03167faa3076bb2e00a425a96ce6aa8762a984fe8ed14922e3fba98cfa90683cb05ff886868660405161073f93929190611822565b60405180910390a35050505050565b600081815260026020526040812061038c90610cbc565b6000828152600160208190526040909120015461078181610ad2565b6103b88383610b01565b60606035805480602002602001604051908101604052809291908181526020016000905b82821015610893576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018101549383019390935260028301805492939291840191610802906116b8565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906116b8565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b505050505081525050815260200190600101906107af565b50505050905090565b806000036108bd576040516370bf851360e11b815260040160405180910390fd5b60355460008190036108e257604051634ec4810560e11b815260040160405180910390fd5b60006108ef600183611850565b90506000805b828110156109e457600061092d866035848154811061091657610916611640565b906000526020600020906003020160010154610cc6565b90506109398184611863565b92506109716035838154811061095157610951611640565b60009182526020909120600390910201546001600160a01b031682610cdf565b6035828154811061098457610984611640565b6000918252602091829020600390910201546040518381526001600160a01b03909116917fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af910160405180910390a2506109dd81611689565b90506108f5565b5083811015610a9757610a2c60358381548110610a0357610a03611640565b60009182526020909120600390910201546001600160a01b0316610a278387611850565b610cdf565b60358281548110610a3f57610a3f611640565b60009182526020909120600390910201546001600160a01b03167fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af610a848387611850565b6040519081526020015b60405180910390a25b50505050565b60006001600160e01b03198216637965db0b60e01b148061038c57506301ffc9a760e01b6001600160e01b031983161461038c565b610adc8133610d44565b50565b610ae98282610d77565b60008281526002602052604090206103b89082610de2565b610b0b8282610df7565b60008281526002602052604090206103b89082610e5e565b806000819003610b4657604051634ec4810560e11b815260040160405180910390fd5b610b5260356000611284565b6000805b82811015610c48576000858583818110610b7257610b72611640565b9050602002810190610b849190611876565b610b92906020810190611656565b6001600160a01b031603610bb95760405163e99d5ac560e01b815260040160405180910390fd5b848482818110610bcb57610bcb611640565b9050602002810190610bdd9190611876565b610beb906020013583611863565b91506035858583818110610c0157610c01611640565b9050602002810190610c139190611876565b815460018101835560009283526020909220909160030201610c358282611896565b505080610c4190611689565b9050610b56565b506127108114610c6b5760405163648564d360e01b815260040160405180910390fd5b336001600160a01b03167f28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c008585604051610a8e9291906119c0565b600061046d8383610e73565b61043c8282610adf565b600061038c825490565b6000612710610cd58385611a92565b61046d9190611aa9565b6000610ceb8383610e9d565b9050806103b857610d04836001600160a01b0316610f13565b610d0d83610f29565b604051602001610d1e929190611acb565b60408051601f198184030181529082905262461bcd60e51b825261042991600401611b49565b610d4e8282610605565b61043c57610d5b81610f13565b610d66836020610f3c565b604051602001610d1e929190611b5c565b610d818282610605565b61043c5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600061046d836001600160a01b0384166110d8565b610e018282610605565b1561043c5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061046d836001600160a01b038416611127565b6000826000018281548110610e8a57610e8a611640565b9060005260206000200154905092915050565b604080516000808252602082019092526001600160a01b038416908390604051610ec79190611bd1565b60006040518083038185875af1925050503d8060008114610f04576040519150601f19603f3d011682016040523d82523d6000602084013e610f09565b606091505b5090949350505050565b606061038c6001600160a01b0383166014610f3c565b606061038c82610f388461121a565b6001015b60606000610f4b836002611a92565b610f56906002611863565b67ffffffffffffffff811115610f6e57610f6e6116a2565b6040519080825280601f01601f191660200182016040528015610f98576020820181803683370190505b509050600360fc1b81600081518110610fb357610fb3611640565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610fe257610fe2611640565b60200101906001600160f81b031916908160001a9053506000611006846002611a92565b611011906001611863565b90505b6001811115611089576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061104557611045611640565b1a60f81b82828151811061105b5761105b611640565b60200101906001600160f81b031916908160001a90535060049490941c9361108281611be3565b9050611014565b50831561046d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610429565b600081815260018301602052604081205461111f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561038c565b50600061038c565b6000818152600183016020526040812054801561121057600061114b600183611850565b855490915060009061115f90600190611850565b90508181146111c457600086600001828154811061117f5761117f611640565b90600052602060002001549050808760000184815481106111a2576111a2611640565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806111d5576111d5611bfa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061038c565b600091505061038c565b600080608083901c156112325760809290921c916010015b604083901c156112475760409290921c916008015b602083901c1561125c5760209290921c916004015b601083901c156112715760109290921c916002015b600883901c1561038c5760010192915050565b5080546000825560030290600052602060002090810190610adc91905b808211156112d65780546001600160a01b03191681556000600182018190556112cd60028301826112da565b506003016112a1565b5090565b5080546112e6906116b8565b6000825580601f106112f6575050565b601f016020900490600052602060002090810190610adc91905b808211156112d65760008155600101611310565b60006020828403121561133657600080fd5b81356001600160e01b03198116811461046d57600080fd5b60006020828403121561136057600080fd5b5035919050565b6001600160a01b0381168114610adc57600080fd5b6000806040838503121561138f57600080fd5b8235915060208301356113a181611367565b809150509250929050565b60008083601f8401126113be57600080fd5b50813567ffffffffffffffff8111156113d657600080fd5b6020830191508360208260051b85010111156113f157600080fd5b9250929050565b6000806020838503121561140b57600080fd5b823567ffffffffffffffff81111561142257600080fd5b61142e858286016113ac565b90969095509350505050565b6000806040838503121561144d57600080fd5b50508035926020909101359150565b60008060008060006060868803121561147457600080fd5b853561147f81611367565b9450602086013567ffffffffffffffff8082111561149c57600080fd5b6114a889838a016113ac565b909650945060408801359150808211156114c157600080fd5b506114ce888289016113ac565b969995985093965092949392505050565b600080600080606085870312156114f557600080fd5b84359350602085013561150781611367565b9250604085013567ffffffffffffffff8082111561152457600080fd5b818701915087601f83011261153857600080fd5b81358181111561154757600080fd5b88602082850101111561155957600080fd5b95989497505060200194505050565b60005b8381101561158357818101518382015260200161156b565b50506000910152565b600081518084526115a4816020860160208601611568565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561163257888303603f19018552815180516001600160a01b031684528781015188850152860151606087850181905261161e8186018361158c565b9689019694505050908601906001016115df565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166857600080fd5b813561046d81611367565b634e487b7160e01b600052601160045260246000fd5b60006001820161169b5761169b611673565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806116cc57607f821691505b6020821081036116ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103b857600081815260208120601f850160051c810160208610156117195750805b601f850160051c820191505b818110156105fd57828155600101611725565b67ffffffffffffffff831115611750576117506116a2565b6117648361175e83546116b8565b836116f2565b6000601f84116001811461179857600085156117805750838201355b600019600387901b1c1916600186901b1783556117f2565b600083815260209020601f19861690835b828110156117c957868501358255602094850194600190920191016117a9565b50868210156117e65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061184790830184866117f9565b95945050505050565b8181038181111561038c5761038c611673565b8082018082111561038c5761038c611673565b60008235605e1983360301811261188c57600080fd5b9190910192915050565b81356118a181611367565b81546001600160a01b0319166001600160a01b03919091161781556020828101356001838101919091559060028301604085013536869003601e190181126118e857600080fd5b8501803567ffffffffffffffff81111561190157600080fd5b803603848301131561191257600080fd5b6119268161192085546116b8565b856116f2565b6000601f82116001811461195c576000831561194457508382018601355b600019600385901b1c1916600184901b1785556119b5565b600085815260209020601f19841690835b8281101561198c5786850189013582559388019390890190880161196d565b50848210156119ab5760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b60208082528181018390526000906040808401600586901b8501820187855b8881101561163257878303603f190184528135368b9003605e19018112611a0557600080fd5b8a0160608135611a1481611367565b6001600160a01b0316855281880135888601528682013536839003601e19018112611a3e57600080fd5b90910187810191903567ffffffffffffffff811115611a5c57600080fd5b803603831315611a6b57600080fd5b8188870152611a7d82870182856117f9565b968901969550505091860191506001016119df565b808202811582820484141761038c5761038c611673565b600082611ac657634e487b7160e01b600052601260045260246000fd5b500490565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351611b1681602a850160208801611568565b660103b30b63ab2960cd1b602a918401918201528351611b3d816031840160208801611568565b01603101949350505050565b60208152600061046d602083018461158c565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611b94816017850160208801611568565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bc5816028840160208801611568565b01602801949350505050565b6000825161188c818460208701611568565b600081611bf257611bf2611673565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208d51978c729b6a9c0e0ecd5b61562f366dfd09974e656890ad9d58de84f6745264736f6c63430008150033", + "callValue": 0, + "chainId": 2020, + "constructorArgs": "0x", + "contractName": "RNSCommission", + "deployedBytecode": "0x6080604052600436106100ec5760003560e01c806391cbc73f1161008a578063c42ef38c11610059578063c42ef38c14610297578063ca15c873146102cb578063d547741f146102eb578063e92108b51461030b57600080fd5b806391cbc73f1461022257806391d14854146102425780639fd50e5814610262578063a217fddf1461028257600080fd5b806336568abe116100c657806336568abe146101945780634c255c97146101b45780635dc30fe5146101ca5780639010d07c146101ea57600080fd5b806301ffc9a714610100578063248a9ca3146101355780632f2ff15d1461017457600080fd5b366100fb576100f961032d565b005b600080fd5b34801561010c57600080fd5b5061012061011b366004611324565b610367565b60405190151581526020015b60405180910390f35b34801561014157600080fd5b5061016661015036600461134e565b6000908152600160208190526040909120015490565b60405190815260200161012c565b34801561018057600080fd5b506100f961018f36600461137c565b610392565b3480156101a057600080fd5b506100f96101af36600461137c565b6103bd565b3480156101c057600080fd5b5061016661271081565b3480156101d657600080fd5b506100f96101e53660046113f8565b610440565b3480156101f657600080fd5b5061020a61020536600461143a565b610455565b6040516001600160a01b03909116815260200161012c565b34801561022e57600080fd5b506100f961023d36600461145c565b610474565b34801561024e57600080fd5b5061012061025d36600461137c565b610605565b34801561026e57600080fd5b506100f961027d3660046114df565b610630565b34801561028e57600080fd5b50610166600081565b3480156102a357600080fd5b506101667f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf281565b3480156102d757600080fd5b506101666102e636600461134e565b61074e565b3480156102f757600080fd5b506100f961030636600461137c565b610765565b34801561031757600080fd5b5061032061078b565b60405161012c91906115b8565b6103577f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf233610605565b15610365576103653461089c565b565b60006001600160e01b03198216635a05180f60e01b148061038c575061038c82610a9d565b92915050565b600082815260016020819052604090912001546103ae81610ad2565b6103b88383610adf565b505050565b6001600160a01b03811633146104325760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61043c8282610b01565b5050565b600061044b81610ad2565b6103b88383610b23565b600082815260026020526040812061046d9083610ca6565b9392505050565b600054610100900460ff16158080156104945750600054600160ff909116105b806104ae5750303b1580156104ae575060005460ff166001145b6105115760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610429565b6000805460ff191660011790558015610534576000805461ff0019166101001790555b61053f600087610cb2565b8160005b818110156105ab5761059b7f76d12de99ad2ca162840505be9b657c2e7a650cc3ee0284048f3f9def3c1adf286868481811061058157610581611640565b90506020020160208101906105969190611656565b610cb2565b6105a481611689565b9050610543565b506105b68686610b23565b5080156105fd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061063b81610ad2565b603554851061065d57604051634ec4810560e11b815260040160405180910390fd5b6001600160a01b0384166106845760405163e99d5ac560e01b815260040160405180910390fd5b836035868154811061069857610698611640565b906000526020600020906003020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508282603587815481106106e2576106e2611640565b90600052602060002090600302016002019182610700929190611738565b5084336001600160a01b03167faa3076bb2e00a425a96ce6aa8762a984fe8ed14922e3fba98cfa90683cb05ff886868660405161073f93929190611822565b60405180910390a35050505050565b600081815260026020526040812061038c90610cbc565b6000828152600160208190526040909120015461078181610ad2565b6103b88383610b01565b60606035805480602002602001604051908101604052809291908181526020016000905b82821015610893576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018101549383019390935260028301805492939291840191610802906116b8565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906116b8565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b505050505081525050815260200190600101906107af565b50505050905090565b806000036108bd576040516370bf851360e11b815260040160405180910390fd5b60355460008190036108e257604051634ec4810560e11b815260040160405180910390fd5b60006108ef600183611850565b90506000805b828110156109e457600061092d866035848154811061091657610916611640565b906000526020600020906003020160010154610cc6565b90506109398184611863565b92506109716035838154811061095157610951611640565b60009182526020909120600390910201546001600160a01b031682610cdf565b6035828154811061098457610984611640565b6000918252602091829020600390910201546040518381526001600160a01b03909116917fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af910160405180910390a2506109dd81611689565b90506108f5565b5083811015610a9757610a2c60358381548110610a0357610a03611640565b60009182526020909120600390910201546001600160a01b0316610a278387611850565b610cdf565b60358281548110610a3f57610a3f611640565b60009182526020909120600390910201546001600160a01b03167fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af610a848387611850565b6040519081526020015b60405180910390a25b50505050565b60006001600160e01b03198216637965db0b60e01b148061038c57506301ffc9a760e01b6001600160e01b031983161461038c565b610adc8133610d44565b50565b610ae98282610d77565b60008281526002602052604090206103b89082610de2565b610b0b8282610df7565b60008281526002602052604090206103b89082610e5e565b806000819003610b4657604051634ec4810560e11b815260040160405180910390fd5b610b5260356000611284565b6000805b82811015610c48576000858583818110610b7257610b72611640565b9050602002810190610b849190611876565b610b92906020810190611656565b6001600160a01b031603610bb95760405163e99d5ac560e01b815260040160405180910390fd5b848482818110610bcb57610bcb611640565b9050602002810190610bdd9190611876565b610beb906020013583611863565b91506035858583818110610c0157610c01611640565b9050602002810190610c139190611876565b815460018101835560009283526020909220909160030201610c358282611896565b505080610c4190611689565b9050610b56565b506127108114610c6b5760405163648564d360e01b815260040160405180910390fd5b336001600160a01b03167f28d7f0d68cf2a192abb8ce94479d236f99759d18e31ee7cbfb0a473764374c008585604051610a8e9291906119c0565b600061046d8383610e73565b61043c8282610adf565b600061038c825490565b6000612710610cd58385611a92565b61046d9190611aa9565b6000610ceb8383610e9d565b9050806103b857610d04836001600160a01b0316610f13565b610d0d83610f29565b604051602001610d1e929190611acb565b60408051601f198184030181529082905262461bcd60e51b825261042991600401611b49565b610d4e8282610605565b61043c57610d5b81610f13565b610d66836020610f3c565b604051602001610d1e929190611b5c565b610d818282610605565b61043c5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600061046d836001600160a01b0384166110d8565b610e018282610605565b1561043c5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061046d836001600160a01b038416611127565b6000826000018281548110610e8a57610e8a611640565b9060005260206000200154905092915050565b604080516000808252602082019092526001600160a01b038416908390604051610ec79190611bd1565b60006040518083038185875af1925050503d8060008114610f04576040519150601f19603f3d011682016040523d82523d6000602084013e610f09565b606091505b5090949350505050565b606061038c6001600160a01b0383166014610f3c565b606061038c82610f388461121a565b6001015b60606000610f4b836002611a92565b610f56906002611863565b67ffffffffffffffff811115610f6e57610f6e6116a2565b6040519080825280601f01601f191660200182016040528015610f98576020820181803683370190505b509050600360fc1b81600081518110610fb357610fb3611640565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610fe257610fe2611640565b60200101906001600160f81b031916908160001a9053506000611006846002611a92565b611011906001611863565b90505b6001811115611089576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061104557611045611640565b1a60f81b82828151811061105b5761105b611640565b60200101906001600160f81b031916908160001a90535060049490941c9361108281611be3565b9050611014565b50831561046d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610429565b600081815260018301602052604081205461111f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561038c565b50600061038c565b6000818152600183016020526040812054801561121057600061114b600183611850565b855490915060009061115f90600190611850565b90508181146111c457600086600001828154811061117f5761117f611640565b90600052602060002001549050808760000184815481106111a2576111a2611640565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806111d5576111d5611bfa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061038c565b600091505061038c565b600080608083901c156112325760809290921c916010015b604083901c156112475760409290921c916008015b602083901c1561125c5760209290921c916004015b601083901c156112715760109290921c916002015b600883901c1561038c5760010192915050565b5080546000825560030290600052602060002090810190610adc91905b808211156112d65780546001600160a01b03191681556000600182018190556112cd60028301826112da565b506003016112a1565b5090565b5080546112e6906116b8565b6000825580601f106112f6575050565b601f016020900490600052602060002090810190610adc91905b808211156112d65760008155600101611310565b60006020828403121561133657600080fd5b81356001600160e01b03198116811461046d57600080fd5b60006020828403121561136057600080fd5b5035919050565b6001600160a01b0381168114610adc57600080fd5b6000806040838503121561138f57600080fd5b8235915060208301356113a181611367565b809150509250929050565b60008083601f8401126113be57600080fd5b50813567ffffffffffffffff8111156113d657600080fd5b6020830191508360208260051b85010111156113f157600080fd5b9250929050565b6000806020838503121561140b57600080fd5b823567ffffffffffffffff81111561142257600080fd5b61142e858286016113ac565b90969095509350505050565b6000806040838503121561144d57600080fd5b50508035926020909101359150565b60008060008060006060868803121561147457600080fd5b853561147f81611367565b9450602086013567ffffffffffffffff8082111561149c57600080fd5b6114a889838a016113ac565b909650945060408801359150808211156114c157600080fd5b506114ce888289016113ac565b969995985093965092949392505050565b600080600080606085870312156114f557600080fd5b84359350602085013561150781611367565b9250604085013567ffffffffffffffff8082111561152457600080fd5b818701915087601f83011261153857600080fd5b81358181111561154757600080fd5b88602082850101111561155957600080fd5b95989497505060200194505050565b60005b8381101561158357818101518382015260200161156b565b50506000910152565b600081518084526115a4816020860160208601611568565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561163257888303603f19018552815180516001600160a01b031684528781015188850152860151606087850181905261161e8186018361158c565b9689019694505050908601906001016115df565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561166857600080fd5b813561046d81611367565b634e487b7160e01b600052601160045260246000fd5b60006001820161169b5761169b611673565b5060010190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806116cc57607f821691505b6020821081036116ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103b857600081815260208120601f850160051c810160208610156117195750805b601f850160051c820191505b818110156105fd57828155600101611725565b67ffffffffffffffff831115611750576117506116a2565b6117648361175e83546116b8565b836116f2565b6000601f84116001811461179857600085156117805750838201355b600019600387901b1c1916600186901b1783556117f2565b600083815260209020601f19861690835b828110156117c957868501358255602094850194600190920191016117a9565b50868210156117e65760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061184790830184866117f9565b95945050505050565b8181038181111561038c5761038c611673565b8082018082111561038c5761038c611673565b60008235605e1983360301811261188c57600080fd5b9190910192915050565b81356118a181611367565b81546001600160a01b0319166001600160a01b03919091161781556020828101356001838101919091559060028301604085013536869003601e190181126118e857600080fd5b8501803567ffffffffffffffff81111561190157600080fd5b803603848301131561191257600080fd5b6119268161192085546116b8565b856116f2565b6000601f82116001811461195c576000831561194457508382018601355b600019600385901b1c1916600184901b1785556119b5565b600085815260209020601f19841690835b8281101561198c5786850189013582559388019390890190880161196d565b50848210156119ab5760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b60208082528181018390526000906040808401600586901b8501820187855b8881101561163257878303603f190184528135368b9003605e19018112611a0557600080fd5b8a0160608135611a1481611367565b6001600160a01b0316855281880135888601528682013536839003601e19018112611a3e57600080fd5b90910187810191903567ffffffffffffffff811115611a5c57600080fd5b803603831315611a6b57600080fd5b8188870152611a7d82870182856117f9565b968901969550505091860191506001016119df565b808202811582820484141761038c5761038c611673565b600082611ac657634e487b7160e01b600052601260045260246000fd5b500490565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351611b1681602a850160208801611568565b660103b30b63ab2960cd1b602a918401918201528351611b3d816031840160208801611568565b01603101949350505050565b60208152600061046d602083018461158c565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611b94816017850160208801611568565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611bc5816028840160208801611568565b01602801949350505050565b6000825161188c818460208701611568565b600081611bf257611bf2611673565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208d51978c729b6a9c0e0ecd5b61562f366dfd09974e656890ad9d58de84f6745264736f6c63430008150033", + "deployer": "0x4d58Ea7231c394d5804e8B06B1365915f906E27F", + "devdoc": { + "version": 1, + "kind": "dev", + "methods": { + "getCommissions()": { + "details": "Returns commissions information." + }, + "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." + }, + "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`." + }, + "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." + }, + "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." + }, + "setCommissionInfo(uint256,address,string)": { + "details": "Sets for specific commission information based on the `commissionIdx`. Requirements: - The method caller is setter role. Emits the event `CommissionInfoUpdated`." + }, + "setCommissions((address,uint256,string)[])": { + "details": "Sets all commission information Requirements: - The method caller is setter role. - The total ratio must be equal to 100%. Emits the event `CommissionsUpdated`." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + } + }, + "events": { + "CommissionInfoUpdated(address,uint256,address,string)": { + "details": "Emitted when specific commission info is updated." + }, + "CommissionsUpdated(address,(address,uint256,string)[])": { + "details": "Emitted when all the commission info is updated." + }, + "Distributed(address,uint256)": { + "details": "Emitted when transfer RON to commission's recipient." + }, + "Initialized(uint8)": { + "details": "Triggered when the contract has been initialized or reinitialized." + }, + "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`)" + } + }, + "errors": { + "InvalidAmountOfRON()": [ + { + "details": "Revert when amount of RON is invalid" + } + ], + "InvalidArrayLength()": [ + { + "details": "Revert when index is out of range" + } + ], + "InvalidRatio()": [ + { + "details": "Revert when ratio is invalid" + } + ], + "NullAddress()": [ + { + "details": "Revert when recipient address is null" + } + ] + } + }, + "isFoundry": true, + "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAmountOfRON\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRatio\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updatedBy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"commissionIdx\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"newRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newName\",\"type\":\"string\"}],\"name\":\"CommissionInfoUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updatedBy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct INSCommission.Commission[]\",\"name\":\"commissionInfos\",\"type\":\"tuple[]\"}],\"name\":\"CommissionsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"commissionAmount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"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\":\"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\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PERCENTAGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SENDER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommissions\",\"outputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct INSCommission.Commission[]\",\"name\":\"commissionInfos\",\"type\":\"tuple[]\"}],\"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\":[{\"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\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct INSCommission.Commission[]\",\"name\":\"commissionInfos\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"allowedSenders\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"commissionIdx\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"newRecipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newName\",\"type\":\"string\"}],\"name\":\"setCommissionInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct INSCommission.Commission[]\",\"name\":\"commissionInfos\",\"type\":\"tuple[]\"}],\"name\":\"setCommissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"InvalidAmountOfRON()\":[{\"details\":\"Revert when amount of RON is invalid\"}],\"InvalidArrayLength()\":[{\"details\":\"Revert when index is out of range\"}],\"InvalidRatio()\":[{\"details\":\"Revert when ratio is invalid\"}],\"NullAddress()\":[{\"details\":\"Revert when recipient address is null\"}]},\"events\":{\"CommissionInfoUpdated(address,uint256,address,string)\":{\"details\":\"Emitted when specific commission info is updated.\"},\"CommissionsUpdated(address,(address,uint256,string)[])\":{\"details\":\"Emitted when all the commission info is updated.\"},\"Distributed(address,uint256)\":{\"details\":\"Emitted when transfer RON to commission's recipient.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"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`)\"}},\"kind\":\"dev\",\"methods\":{\"getCommissions()\":{\"details\":\"Returns commissions information.\"},\"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.\"},\"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`.\"},\"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.\"},\"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.\"},\"setCommissionInfo(uint256,address,string)\":{\"details\":\"Sets for specific commission information based on the `commissionIdx`. Requirements: - The method caller is setter role. Emits the event `CommissionInfoUpdated`.\"},\"setCommissions((address,uint256,string)[])\":{\"details\":\"Sets all commission information Requirements: - The method caller is setter role. - The total ratio must be equal to 100%. Emits the event `CommissionsUpdated`.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"MAX_PERCENTAGE\":{\"details\":\"Constant representing the maximum percentage value (100%).\"},\"SENDER_ROLE\":{\"details\":\"Role for accounts that can send RON for this contract.\"},\"____gap\":{\"details\":\"Gap for upgradeability.\"},\"_commissionInfos\":{\"details\":\"Array of `Commission` structs that store commissions information.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RNSCommission.sol\":\"RNSCommission\"},\"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/\",\":@fdk-0.3.0-beta/=dependencies/@fdk-0.3.0-beta/\",\":@fdk/=dependencies/@fdk-0.3.0-beta/script/\",\":@openzeppelin-contracts-4.9.3/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@pythnetwork-pyth-sdk-solidity-2.2.0/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@pythnetwork/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@rns-contracts/=src/\",\":@solady/=dependencies/@fdk-0.3.0-beta/dependencies/solady-0.0.206/src/\",\":buffer/=lib/buffer/contracts/\",\":contract-libs/=lib/contract-libs/src/\",\":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/=dependencies/@fdk-0.3.0-beta/dependencies/forge-std-1.8.2/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/\"]},\"sources\":{\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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/RNSCommission.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 { INSCommission } from \\\"./interfaces/INSCommission.sol\\\";\\nimport { RONTransferHelper } from \\\"./libraries/transfers/RONTransferHelper.sol\\\";\\n\\ncontract RNSCommission is Initializable, AccessControlEnumerable, INSCommission {\\n /// @dev Constant representing the maximum percentage value (100%).\\n uint256 public constant MAX_PERCENTAGE = 100_00;\\n /// @dev Role for accounts that can send RON for this contract.\\n bytes32 public constant SENDER_ROLE = keccak256(\\\"SENDER_ROLE\\\");\\n\\n /// @dev Gap for upgradeability.\\n uint256[50] private ____gap;\\n /// @dev Array of `Commission` structs that store commissions information.\\n Commission[] internal _commissionInfos;\\n\\n constructor() {\\n _disableInitializers();\\n }\\n\\n receive() external payable {\\n _fallback();\\n }\\n\\n function initialize(address admin, Commission[] calldata commissionInfos, address[] calldata allowedSenders)\\n external\\n initializer\\n {\\n _setupRole(DEFAULT_ADMIN_ROLE, admin);\\n\\n uint256 length = allowedSenders.length;\\n for (uint256 i; i < length; ++i) {\\n _setupRole(SENDER_ROLE, allowedSenders[i]);\\n }\\n\\n _setCommissions(commissionInfos);\\n }\\n\\n /// @inheritdoc INSCommission\\n function getCommissions() external view returns (Commission[] memory commissionInfos) {\\n return _commissionInfos;\\n }\\n\\n /// @inheritdoc INSCommission\\n function setCommissions(Commission[] calldata commissionInfos) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setCommissions(commissionInfos);\\n }\\n\\n /// @inheritdoc INSCommission\\n function setCommissionInfo(uint256 commissionIdx, address payable newRecipient, string calldata newName)\\n external\\n onlyRole(DEFAULT_ADMIN_ROLE)\\n {\\n if (commissionIdx >= _commissionInfos.length) revert InvalidArrayLength();\\n // TODO: should fix to not duplicate logic in set commision info\\n if (newRecipient == address(0)) revert NullAddress();\\n\\n _commissionInfos[commissionIdx].recipient = newRecipient;\\n _commissionInfos[commissionIdx].name = newName;\\n emit CommissionInfoUpdated(msg.sender, commissionIdx, newRecipient, newName);\\n }\\n\\n /**\\n * @dev Helper method to allocate commission and take fee into recipient address.\\n */\\n function _allocateCommissionAndTransferToRecipient(uint256 ronAmount) internal {\\n if (ronAmount == 0) revert InvalidAmountOfRON();\\n\\n uint256 length = _commissionInfos.length;\\n if (length == 0) revert InvalidArrayLength();\\n\\n uint256 lastIdx = length - 1;\\n uint256 sumValue;\\n\\n for (uint256 i; i < lastIdx; ++i) {\\n uint256 commissionAmount = _computePercentage(ronAmount, _commissionInfos[i].ratio);\\n sumValue += commissionAmount;\\n\\n RONTransferHelper.safeTransfer(_commissionInfos[i].recipient, commissionAmount);\\n emit Distributed(_commissionInfos[i].recipient, commissionAmount);\\n }\\n\\n // This code send the remaining RON to the last recipient.\\n if (sumValue < ronAmount) {\\n RONTransferHelper.safeTransfer(_commissionInfos[lastIdx].recipient, ronAmount - sumValue);\\n emit Distributed(_commissionInfos[lastIdx].recipient, ronAmount - sumValue);\\n }\\n }\\n\\n function _setCommissions(Commission[] calldata commissionInfos) internal {\\n uint256 length = commissionInfos.length;\\n // commissionInfos[] can not be empty\\n if (length == 0) revert InvalidArrayLength();\\n\\n delete _commissionInfos;\\n\\n uint256 sum;\\n\\n for (uint256 i; i < length; ++i) {\\n if (commissionInfos[i].recipient == address(0)) revert NullAddress();\\n\\n sum += commissionInfos[i].ratio;\\n _commissionInfos.push(commissionInfos[i]);\\n }\\n\\n if (sum != MAX_PERCENTAGE) revert InvalidRatio();\\n\\n emit CommissionsUpdated(msg.sender, commissionInfos);\\n }\\n\\n // Calculate amount of money based on commission's ratio\\n function _computePercentage(uint256 value, uint256 percentage) internal pure virtual returns (uint256) {\\n return (value * percentage) / MAX_PERCENTAGE;\\n }\\n\\n function _fallback() internal {\\n if (hasRole(SENDER_ROLE, msg.sender)) {\\n _allocateCommissionAndTransferToRecipient(msg.value);\\n }\\n }\\n}\\n\",\"keccak256\":\"0xef2dc31d9a58007dc0a12cb027d4981bf57b5d0a0c465fbb511afe64cb64640c\",\"license\":\"MIT\"},\"src/interfaces/INSCommission.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ninterface INSCommission {\\n struct Commission {\\n address payable recipient;\\n uint256 ratio; // Values [0; 100_00] reflexes [0; 100%]\\n string name; // Commission's name\\n }\\n\\n /// @dev Emitted when all the commission info is updated.\\n event CommissionsUpdated(address indexed updatedBy, Commission[] commissionInfos);\\n /// @dev Emitted when specific commission info is updated.\\n event CommissionInfoUpdated(\\n address indexed updatedBy, uint256 indexed commissionIdx, address payable newRecipient, string newName\\n );\\n /// @dev Emitted when transfer RON to commission's recipient.\\n event Distributed(address indexed recipient, uint256 commissionAmount);\\n\\n /// @dev Revert when index is out of range\\n error InvalidArrayLength();\\n /// @dev Revert when ratio is invalid\\n error InvalidRatio();\\n /// @dev Revert when amount of RON is invalid\\n error InvalidAmountOfRON();\\n /// @dev Revert when recipient address is null\\n error NullAddress();\\n\\n /**\\n * @dev Maximum commission percentage.\\n */\\n function MAX_PERCENTAGE() external pure returns (uint256);\\n\\n /**\\n * @dev Returns the sender role.\\n */\\n function SENDER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns commissions information.\\n */\\n function getCommissions() external view returns (Commission[] memory commissionInfos);\\n\\n /**\\n * @dev Sets all commission information\\n *\\n * Requirements:\\n * - The method caller is setter role.\\n * - The total ratio must be equal to 100%.\\n * Emits the event `CommissionsUpdated`.\\n */\\n function setCommissions(Commission[] calldata commissionInfos) external;\\n\\n /**\\n * @dev Sets for specific commission information based on the `commissionIdx`.\\n *\\n * Requirements:\\n * - The method caller is setter role.\\n * Emits the event `CommissionInfoUpdated`.\\n */\\n function setCommissionInfo(uint256 commissionIdx, address payable newAddr, string calldata name) external;\\n}\\n\",\"keccak256\":\"0xb2c57076aabd1b2a189be0f936d9945fdce20e86f9698688af07e0abafd712f2\",\"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\"}},\"version\":1}", + "nonce": 196, + "storageLayout": { + "storage": [ + { + "astId": 60342, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8" + }, + { + "astId": 60345, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 58815, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_roles", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_bytes32,t_struct(RoleData)58810_storage)" + }, + { + "astId": 59125, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_roleMembers", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_bytes32,t_struct(AddressSet)64694_storage)" + }, + { + "astId": 79107, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "____gap", + "offset": 0, + "slot": "3", + "type": "t_array(t_uint256)50_storage" + }, + { + "astId": 79112, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_commissionInfos", + "offset": 0, + "slot": "53", + "type": "t_array(t_struct(Commission)84580_storage)dyn_storage" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_address_payable": { + "encoding": "inplace", + "label": "address payable", + "numberOfBytes": "20" + }, + "t_array(t_bytes32)dyn_storage": { + "encoding": "dynamic_array", + "label": "bytes32[]", + "numberOfBytes": "32", + "base": "t_bytes32" + }, + "t_array(t_struct(Commission)84580_storage)dyn_storage": { + "encoding": "dynamic_array", + "label": "struct INSCommission.Commission[]", + "numberOfBytes": "32", + "base": "t_struct(Commission)84580_storage" + }, + "t_array(t_uint256)50_storage": { + "encoding": "inplace", + "label": "uint256[50]", + "numberOfBytes": "1600", + "base": "t_uint256" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(AddressSet)64694_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct EnumerableSet.AddressSet)", + "numberOfBytes": "32", + "value": "t_struct(AddressSet)64694_storage" + }, + "t_mapping(t_bytes32,t_struct(RoleData)58810_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)58810_storage" + }, + "t_mapping(t_bytes32,t_uint256)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(AddressSet)64694_storage": { + "encoding": "inplace", + "label": "struct EnumerableSet.AddressSet", + "numberOfBytes": "64", + "members": [ + { + "astId": 64693, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_inner", + "offset": 0, + "slot": "0", + "type": "t_struct(Set)64379_storage" + } + ] + }, + "t_struct(Commission)84580_storage": { + "encoding": "inplace", + "label": "struct INSCommission.Commission", + "numberOfBytes": "96", + "members": [ + { + "astId": 84575, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "recipient", + "offset": 0, + "slot": "0", + "type": "t_address_payable" + }, + { + "astId": 84577, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "ratio", + "offset": 0, + "slot": "1", + "type": "t_uint256" + }, + { + "astId": 84579, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage" + } + ] + }, + "t_struct(RoleData)58810_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "numberOfBytes": "64", + "members": [ + { + "astId": 58807, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "members", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 58809, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ] + }, + "t_struct(Set)64379_storage": { + "encoding": "inplace", + "label": "struct EnumerableSet.Set", + "numberOfBytes": "64", + "members": [ + { + "astId": 64374, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_values", + "offset": 0, + "slot": "0", + "type": "t_array(t_bytes32)dyn_storage" + }, + { + "astId": 64378, + "contract": "src/RNSCommission.sol:RNSCommission", + "label": "_indexes", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_bytes32,t_uint256)" + } + ] + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "encoding": "inplace", + "label": "uint8", + "numberOfBytes": "1" + } + } + }, + "timestamp": 1720084974, + "userdoc": { + "version": 1, + "kind": "user" + } +} \ No newline at end of file diff --git a/deployments/ronin-mainnet/RNSCommissionProxy.json b/deployments/ronin-mainnet/RNSCommissionProxy.json new file mode 100644 index 0000000..4209f1d --- /dev/null +++ b/deployments/ronin-mainnet/RNSCommissionProxy.json @@ -0,0 +1,128 @@ +{ + "abi": [ + { + "type": "constructor", + "inputs": [ + { + "name": "logic", + "type": "address", + "internalType": "address" + }, + { + "name": "admin", + "type": "address", + "internalType": "address" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "payable" + }, + { + "type": "fallback", + "stateMutability": "payable" + }, + { + "type": "receive", + "stateMutability": "payable" + }, + { + "type": "event", + "name": "AdminChanged", + "inputs": [ + { + "name": "previousAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newAdmin", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BeaconUpgraded", + "inputs": [ + { + "name": "beacon", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Upgraded", + "inputs": [ + { + "name": "implementation", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + } + ], + "absolutePath": "TransparentProxyOZv4_9_5.sol:TransparentProxyOZv4_9_5", + "address": "0x1Bece3A948c14EeFBAACE67Fe6f51Cd21b79aA21", + "ast": "", + "blockNumber": 36083767, + "bytecode": "0x608060405260405162000e4038038062000e4083398101604081905262000026916200042a565b8282828281620000398282600062000053565b506200004790508262000085565b5050505050506200055d565b6200005e83620000f7565b6000825111806200006c5750805b1562000080576200007e838362000139565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c760008051602062000df9833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000f48162000168565b50565b620001028162000206565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000161838360405180606001604052806027815260200162000e19602791396200029d565b9392505050565b6001600160a01b038116620001d35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000df98339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002755760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001ca565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001e5565b6060600080856001600160a01b031685604051620002bc91906200050a565b600060405180830381855af49150503d8060008114620002f9576040519150601f19603f3d011682016040523d82523d6000602084013e620002fe565b606091505b50909250905062000312868383876200031c565b9695505050505050565b606083156200039057825160000362000388576001600160a01b0385163b620003885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001ca565b50816200039c565b6200039c8383620003a4565b949350505050565b815115620003b55781518083602001fd5b8060405162461bcd60e51b8152600401620001ca919062000528565b80516001600160a01b0381168114620003e957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200042157818101518382015260200162000407565b50506000910152565b6000806000606084860312156200044057600080fd5b6200044b84620003d1565b92506200045b60208501620003d1565b60408501519092506001600160401b03808211156200047957600080fd5b818601915086601f8301126200048e57600080fd5b815181811115620004a357620004a3620003ee565b604051601f8201601f19908116603f01168101908382118183101715620004ce57620004ce620003ee565b81604052828152896020848701011115620004e857600080fd5b620004fb83602083016020880162000404565b80955050505050509250925092565b600082516200051e81846020870162000404565b9190910192915050565b60208152600082518060208401526200054981604085016020870162000404565b601f01601f19169190910160400192915050565b61088c806200056d6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083060279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e0565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e91906107fc565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff8082111561073357600080fd5b818501915085601f83011261074757600080fd5b813581811115610759576107596106e4565b604051601f8201601f19908116603f01168101908382118183101715610781576107816106e4565b8160405282815288602084870101111561079a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107d75781810151838201526020016107bf565b50506000910152565b600082516107f28184602087016107bc565b9190910192915050565b602081526000825180602084015261081b8160408501602087016107bc565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a207c78ed3af0a4f57ce2b6c2fd644d6f8debc43e54eebfade2164eaf01f76a464736f6c63430008150033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "callValue": 0, + "chainId": 2020, + "constructorArgs": "0x00000000000000000000000070d1a6f75161e8d5de10e4aaa82aa1b423b4362a000000000000000000000000a3e7d085e65cb0b916f6717da876b7be5cc92f030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026491cbc73f0000000000000000000000009d05d1f5b0424f8fde534bc196ffb6dd211d902a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000ff43f5ef28ecb7c1f219751fc793deb40ef07a530000000000000000000000000000000000000000000000000000000000001b5800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000009536b79204d61766973000000000000000000000000000000000000000000000000000000000000000000000022cefc91e9b7c0f3890ebf9527ea89053490694e0000000000000000000000000000000000000000000000000000000000000bb800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005526f6e696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d55e6d80aea1ff4650bc952c1653ab3cf1b940a9000000000000000000000000662852853614cbbb5d04bf2e29955b97e3c50b6900000000000000000000000000000000000000000000000000000000", + "contractName": "TransparentProxyOZv4_9_5", + "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b61001f610169565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a5761005361019c565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a576100536101f3565b63070d7c6960e41b6001600160e01b031982160161009a57610053610239565b621eb96f60e61b6001600160e01b03198216016100b95761005361026a565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102aa565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102be565b565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a66102ce565b60006101b53660048184610683565b8101906101c291906106c9565b90506101df816040518060200160405280600081525060006102d9565b505060408051602081019091526000815290565b60606000806102053660048184610683565b81019061021291906106fa565b91509150610222828260016102d9565b604051806020016040528060008152509250505090565b60606102436102ce565b60006102523660048184610683565b81019061025f91906106c9565b90506101df81610305565b60606102746102ce565b600061027e610169565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102b46102ce565b600061027e61035c565b6101676102c961035c565b61036b565b341561016757600080fd5b6102e28361038f565b6000825111806102ef5750805b15610300576102fe83836103cf565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e610169565b604080516001600160a01b03928316815291841660208301520160405180910390a1610359816103fb565b50565b60006103666104a4565b905090565b3660008037600080366000845af43d6000803e80801561038a573d6000f35b3d6000fd5b610398816104cc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103f4838360405180606001604052806027815260200161083060279139610560565b9392505050565b6001600160a01b0381166104605760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018d565b6001600160a01b0381163b6105395760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610483565b6060600080856001600160a01b03168560405161057d91906107e0565b600060405180830381855af49150503d80600081146105b8576040519150601f19603f3d011682016040523d82523d6000602084013e6105bd565b606091505b50915091506105ce868383876105d8565b9695505050505050565b60608315610647578251600003610640576001600160a01b0385163b6106405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b5081610651565b6106518383610659565b949350505050565b8151156106695781518083602001fd5b8060405162461bcd60e51b815260040161014e91906107fc565b6000808585111561069357600080fd5b838611156106a057600080fd5b5050820193919092039150565b80356001600160a01b03811681146106c457600080fd5b919050565b6000602082840312156106db57600080fd5b6103f4826106ad565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070d57600080fd5b610716836106ad565b9150602083013567ffffffffffffffff8082111561073357600080fd5b818501915085601f83011261074757600080fd5b813581811115610759576107596106e4565b604051601f8201601f19908116603f01168101908382118183101715610781576107816106e4565b8160405282815288602084870101111561079a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107d75781810151838201526020016107bf565b50506000910152565b600082516107f28184602087016107bc565b9190910192915050565b602081526000825180602084015261081b8160408501602087016107bc565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a207c78ed3af0a4f57ce2b6c2fd644d6f8debc43e54eebfade2164eaf01f76a464736f6c63430008150033", + "deployer": "0x4d58Ea7231c394d5804e8B06B1365915f906E27F", + "devdoc": { + "version": 1, + "kind": "dev", + "details": "A contract that acts as a proxy for transparent upgrades.", + "methods": { + "constructor": { + "details": "Initializes the Proxy contract.", + "params": { + "admin": "The address of the admin contract.", + "data": "The initialization data.", + "logic": "The address of the logic contract." + } + } + }, + "events": { + "AdminChanged(address,address)": { + "details": "Emitted when the admin account has changed." + }, + "BeaconUpgraded(address)": { + "details": "Emitted when the beacon is changed." + }, + "Upgraded(address)": { + "details": "Emitted when the implementation is upgraded." + } + }, + "title": "TransparentProxyOZv4_9_5" + }, + "isFoundry": true, + "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"A contract that acts as a proxy for transparent upgrades.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the Proxy contract.\",\"params\":{\"admin\":\"The address of the admin contract.\",\"data\":\"The initialization data.\",\"logic\":\"The address of the logic contract.\"}}},\"title\":\"TransparentProxyOZv4_9_5\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"dependencies/@fdk-0.3.0-beta/src/TransparentProxyOZv4_9_5.sol\":\"TransparentProxyOZv4_9_5\"},\"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/\",\":@fdk-0.3.0-beta/=dependencies/@fdk-0.3.0-beta/\",\":@fdk/=dependencies/@fdk-0.3.0-beta/script/\",\":@openzeppelin-contracts-4.9.3/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@pythnetwork-pyth-sdk-solidity-2.2.0/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@pythnetwork/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@rns-contracts/=src/\",\":@solady/=dependencies/@fdk-0.3.0-beta/dependencies/solady-0.0.206/src/\",\":buffer/=lib/buffer/contracts/\",\":contract-libs/=lib/contract-libs/src/\",\":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/=dependencies/@fdk-0.3.0-beta/dependencies/forge-std-1.8.2/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/\"]},\"sources\":{\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/interfaces/IERC1967.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\\n *\\n * _Available since v4.8.3._\\n */\\ninterface IERC1967 {\\n /**\\n * @dev Emitted when the implementation is upgraded.\\n */\\n event Upgraded(address indexed implementation);\\n\\n /**\\n * @dev Emitted when the admin account has changed.\\n */\\n event AdminChanged(address previousAdmin, address newAdmin);\\n\\n /**\\n * @dev Emitted when the beacon is changed.\\n */\\n event BeaconUpgraded(address indexed beacon);\\n}\\n\",\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n /**\\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n * address.\\n *\\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n * function revert if invoked through a proxy.\\n */\\n function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n /**\\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n *\\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n * function call, and allows initializing the storage of the proxy like a Solidity constructor.\\n */\\n constructor(address _logic, bytes memory _data) payable {\\n _upgradeToAndCall(_logic, _data, false);\\n }\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _implementation() internal view virtual override returns (address impl) {\\n return ERC1967Upgrade._getImplementation();\\n }\\n}\\n\",\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/IERC1967.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n */\\nabstract contract ERC1967Upgrade is IERC1967 {\\n // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n /**\\n * @dev Storage slot with the address of the current implementation.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n /**\\n * @dev Returns the current implementation address.\\n */\\n function _getImplementation() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 implementation slot.\\n */\\n function _setImplementation(address newImplementation) private {\\n require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n }\\n\\n /**\\n * @dev Perform implementation upgrade\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeTo(address newImplementation) internal {\\n _setImplementation(newImplementation);\\n emit Upgraded(newImplementation);\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal {\\n _upgradeTo(newImplementation);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(newImplementation, data);\\n }\\n }\\n\\n /**\\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n *\\n * Emits an {Upgraded} event.\\n */\\n function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal {\\n // Upgrades from old implementations will perform a rollback test. This test requires the new\\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n // this special case will break upgrade paths from old UUPS implementation to new ones.\\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n _setImplementation(newImplementation);\\n } else {\\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n } catch {\\n revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n }\\n _upgradeToAndCall(newImplementation, data, forceCall);\\n }\\n }\\n\\n /**\\n * @dev Storage slot with the admin of the contract.\\n * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n * validated in the constructor.\\n */\\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n /**\\n * @dev Returns the current admin.\\n */\\n function _getAdmin() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new address in the EIP1967 admin slot.\\n */\\n function _setAdmin(address newAdmin) private {\\n require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _changeAdmin(address newAdmin) internal {\\n emit AdminChanged(_getAdmin(), newAdmin);\\n _setAdmin(newAdmin);\\n }\\n\\n /**\\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n */\\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n /**\\n * @dev Returns the current beacon.\\n */\\n function _getBeacon() internal view returns (address) {\\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n }\\n\\n /**\\n * @dev Stores a new beacon in the EIP1967 beacon slot.\\n */\\n function _setBeacon(address newBeacon) private {\\n require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n require(\\n Address.isContract(IBeacon(newBeacon).implementation()),\\n \\\"ERC1967: beacon implementation is not a contract\\\"\\n );\\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n }\\n\\n /**\\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n *\\n * Emits a {BeaconUpgraded} event.\\n */\\n function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal {\\n _setBeacon(newBeacon);\\n emit BeaconUpgraded(newBeacon);\\n if (data.length > 0 || forceCall) {\\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n /**\\n * @dev Delegates the current call to `implementation`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _delegate(address implementation) internal virtual {\\n assembly {\\n // Copy msg.data. We take full control of memory in this inline assembly\\n // block because it will not return to Solidity code. We overwrite the\\n // Solidity scratch pad at memory position 0.\\n calldatacopy(0, 0, calldatasize())\\n\\n // Call the implementation.\\n // out and outsize are 0 because we don't know the size yet.\\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n // Copy the returned data.\\n returndatacopy(0, 0, returndatasize())\\n\\n switch result\\n // delegatecall returns 0 on error.\\n case 0 {\\n revert(0, returndatasize())\\n }\\n default {\\n return(0, returndatasize())\\n }\\n }\\n }\\n\\n /**\\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\\n * and {_fallback} should delegate.\\n */\\n function _implementation() internal view virtual returns (address);\\n\\n /**\\n * @dev Delegates the current call to the address returned by `_implementation()`.\\n *\\n * This function does not return to its internal call site, it will return directly to the external caller.\\n */\\n function _fallback() internal virtual {\\n _beforeFallback();\\n _delegate(_implementation());\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n * function in the contract matches the call data.\\n */\\n fallback() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n * is empty.\\n */\\n receive() external payable virtual {\\n _fallback();\\n }\\n\\n /**\\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n * call, or as part of the Solidity `fallback` or `receive` functions.\\n *\\n * If overridden should call `super._beforeFallback()`.\\n */\\n function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n /**\\n * @dev Must return an address that can be used as a delegate call target.\\n *\\n * {BeaconProxy} will check that this address is a contract.\\n */\\n function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\\n * does not implement this interface directly, and some of its functions are implemented by an internal dispatch\\n * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\\n * include them in the ABI so this interface must be used to interact with it.\\n */\\ninterface ITransparentUpgradeableProxy is IERC1967 {\\n function admin() external view returns (address);\\n\\n function implementation() external view returns (address);\\n\\n function changeAdmin(address) external;\\n\\n function upgradeTo(address) external;\\n\\n function upgradeToAndCall(address, bytes memory) external payable;\\n}\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n *\\n * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\\n * inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch\\n * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\\n * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\\n * implementation.\\n *\\n * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler\\n * will not check that there are no selector conflicts, due to the note above. A selector clash between any new function\\n * and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could\\n * render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n /**\\n * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n */\\n constructor(address _logic, address admin_, bytes memory _data) payable ERC1967Proxy(_logic, _data) {\\n _changeAdmin(admin_);\\n }\\n\\n /**\\n * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n *\\n * CAUTION: This modifier is deprecated, as it could cause issues if the modified function has arguments, and the\\n * implementation provides a function with the same selector.\\n */\\n modifier ifAdmin() {\\n if (msg.sender == _getAdmin()) {\\n _;\\n } else {\\n _fallback();\\n }\\n }\\n\\n /**\\n * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior\\n */\\n function _fallback() internal virtual override {\\n if (msg.sender == _getAdmin()) {\\n bytes memory ret;\\n bytes4 selector = msg.sig;\\n if (selector == ITransparentUpgradeableProxy.upgradeTo.selector) {\\n ret = _dispatchUpgradeTo();\\n } else if (selector == ITransparentUpgradeableProxy.upgradeToAndCall.selector) {\\n ret = _dispatchUpgradeToAndCall();\\n } else if (selector == ITransparentUpgradeableProxy.changeAdmin.selector) {\\n ret = _dispatchChangeAdmin();\\n } else if (selector == ITransparentUpgradeableProxy.admin.selector) {\\n ret = _dispatchAdmin();\\n } else if (selector == ITransparentUpgradeableProxy.implementation.selector) {\\n ret = _dispatchImplementation();\\n } else {\\n revert(\\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n }\\n assembly {\\n return(add(ret, 0x20), mload(ret))\\n }\\n } else {\\n super._fallback();\\n }\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n */\\n function _dispatchAdmin() private returns (bytes memory) {\\n _requireZeroValue();\\n\\n address admin = _getAdmin();\\n return abi.encode(admin);\\n }\\n\\n /**\\n * @dev Returns the current implementation.\\n *\\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n */\\n function _dispatchImplementation() private returns (bytes memory) {\\n _requireZeroValue();\\n\\n address implementation = _implementation();\\n return abi.encode(implementation);\\n }\\n\\n /**\\n * @dev Changes the admin of the proxy.\\n *\\n * Emits an {AdminChanged} event.\\n */\\n function _dispatchChangeAdmin() private returns (bytes memory) {\\n _requireZeroValue();\\n\\n address newAdmin = abi.decode(msg.data[4:], (address));\\n _changeAdmin(newAdmin);\\n\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy.\\n */\\n function _dispatchUpgradeTo() private returns (bytes memory) {\\n _requireZeroValue();\\n\\n address newImplementation = abi.decode(msg.data[4:], (address));\\n _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n * proxied contract.\\n */\\n function _dispatchUpgradeToAndCall() private returns (bytes memory) {\\n (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));\\n _upgradeToAndCall(newImplementation, data, true);\\n\\n return \\\"\\\";\\n }\\n\\n /**\\n * @dev Returns the current admin.\\n *\\n * CAUTION: This function is deprecated. Use {ERC1967Upgrade-_getAdmin} instead.\\n */\\n function _admin() internal view virtual returns (address) {\\n return _getAdmin();\\n }\\n\\n /**\\n * @dev To keep this contract fully transparent, all `ifAdmin` functions must be payable. This helper is here to\\n * emulate some proxy functions being non-payable while still allowing value to pass through.\\n */\\n function _requireZeroValue() private {\\n require(msg.value == 0);\\n }\\n}\\n\",\"keccak256\":\"0x168e36d7e616bd41f6abab4a83009da64513ae9e638aa6d5980066e2a92db689\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@fdk-0.3.0-beta/dependencies/@openzeppelin-contracts-4.9.3/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)\\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```solidity\\n * contract ERC1967 {\\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n * function _getImplementation() internal view returns (address) {\\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n * }\\n *\\n * function _setImplementation(address newImplementation) internal {\\n * require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n * }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\\n * _Available since v4.9 for `string`, `bytes`._\\n */\\nlibrary StorageSlot {\\n struct AddressSlot {\\n address value;\\n }\\n\\n struct BooleanSlot {\\n bool value;\\n }\\n\\n struct Bytes32Slot {\\n bytes32 value;\\n }\\n\\n struct Uint256Slot {\\n uint256 value;\\n }\\n\\n struct StringSlot {\\n string value;\\n }\\n\\n struct BytesSlot {\\n bytes value;\\n }\\n\\n /**\\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n */\\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n */\\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n */\\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n */\\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\\n */\\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\\n */\\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := store.slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\\n */\\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := slot\\n }\\n }\\n\\n /**\\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\\n */\\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\\n /// @solidity memory-safe-assembly\\n assembly {\\n r.slot := store.slot\\n }\\n }\\n}\\n\",\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\"},\"dependencies/@fdk-0.3.0-beta/src/TransparentProxyOZv4_9_5.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport {\\n ITransparentUpgradeableProxy,\\n TransparentUpgradeableProxy\\n} from \\\"../dependencies/@openzeppelin-contracts-4.9.3//proxy/transparent/TransparentUpgradeableProxy.sol\\\";\\n\\n/**\\n * @title TransparentProxyOZv4_9_5\\n * @dev A contract that acts as a proxy for transparent upgrades.\\n */\\ncontract TransparentProxyOZv4_9_5 is TransparentUpgradeableProxy {\\n /**\\n * @dev Initializes the Proxy contract.\\n * @param logic The address of the logic contract.\\n * @param admin The address of the admin contract.\\n * @param data The initialization data.\\n */\\n constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) { }\\n}\\n\",\"keccak256\":\"0x680e3c2fc0044a6c4f3771e851124702a668be855b4b8731a38a93efda94dec2\",\"license\":\"MIT\"}},\"version\":1}", + "nonce": 197, + "storageLayout": { + "storage": [], + "types": {} + }, + "timestamp": 1720084974, + "userdoc": { + "version": 1, + "kind": "user" + } +} \ No newline at end of file diff --git a/deployments/ronin-mainnet/RONRegistrarControllerLogic.json b/deployments/ronin-mainnet/RONRegistrarControllerLogic.json index 6a87139..ffb8e35 100644 --- a/deployments/ronin-mainnet/RONRegistrarControllerLogic.json +++ b/deployments/ronin-mainnet/RONRegistrarControllerLogic.json @@ -1,15738 +1,1193 @@ { "abi": [ { + "type": "constructor", "inputs": [], - "stateMutability": "payable", - "type": "constructor" + "stateMutability": "payable" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "commitment", - "type": "bytes32" - } - ], - "name": "CommitmentTooNew", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "commitment", - "type": "bytes32" - } - ], - "name": "CommitmentTooOld", - "type": "error" - }, - { - "inputs": [ + "type": "function", + "name": "DEFAULT_ADMIN_ROLE", + "inputs": [], + "outputs": [ { - "internalType": "uint64", - "name": "duration", - "type": "uint64" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "DurationTooShort", - "type": "error" + "stateMutability": "view" }, { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "address", - "name": "requestOwner", - "type": "address" - }, - { - "internalType": "bool", - "name": "nameProtected", - "type": "bool" - }, + "type": "function", + "name": "MIN_DOMAIN_LENGTH", + "inputs": [], + "outputs": [ { - "internalType": "bool", - "name": "ownerWhitelisted", - "type": "bool" + "name": "", + "type": "uint8", + "internalType": "uint8" } ], - "name": "ErrInvalidRegisterProtectedName", - "type": "error" + "stateMutability": "view" }, { - "inputs": [ + "type": "function", + "name": "OPERATOR_ROLE", + "inputs": [], + "outputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "ErrRequestedForProtectedName", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientValue", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidArrayLength", - "type": "error" - }, - { - "inputs": [], - "name": "MaxCommitmentAgeTooHigh", - "type": "error" + "stateMutability": "view" }, { + "type": "function", + "name": "PAUSER_ROLE", "inputs": [], - "name": "MaxCommitmentAgeTooLow", - "type": "error" - }, - { - "inputs": [ + "outputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "NameNotAvailable", - "type": "error" - }, - { - "inputs": [], - "name": "ResolverRequiredWhenDataSupplied", - "type": "error" + "stateMutability": "view" }, { + "type": "function", + "name": "available", "inputs": [ { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" + "name": "name", + "type": "string", + "internalType": "string" } ], - "name": "Unauthorized", - "type": "error" - }, - { - "inputs": [ + "outputs": [ { - "internalType": "bytes32", - "name": "commitment", - "type": "bytes32" + "name": "", + "type": "bool", + "internalType": "bool" } ], - "name": "UnexpiredCommitmentExists", - "type": "error" + "stateMutability": "view" }, { - "anonymous": false, + "type": "function", + "name": "bulkWhitelistProtectedNames", "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + "name": "ids", + "type": "uint256[]", + "internalType": "uint256[]" }, { - "indexed": false, - "internalType": "uint256", - "name": "minCommitmentAge", - "type": "uint256" + "name": "owners", + "type": "address[]", + "internalType": "address[]" }, { - "indexed": false, - "internalType": "uint256", - "name": "maxCommitmentAge", - "type": "uint256" + "name": "status", + "type": "bool", + "internalType": "bool" } ], - "name": "CommitmentAgeUpdated", - "type": "event" + "outputs": [], + "stateMutability": "nonpayable" }, { - "anonymous": false, + "type": "function", + "name": "commit", "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract INSDomainPrice", - "name": "newDomainPrice", - "type": "address" + "name": "commitment", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "DomainPriceUpdated", - "type": "event" + "outputs": [], + "stateMutability": "nonpayable" }, { - "anonymous": false, + "type": "function", + "name": "computeCommitment", "inputs": [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "name", + "type": "string", + "internalType": "string" + }, { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + "name": "owner", + "type": "address", + "internalType": "address" }, { - "indexed": false, - "internalType": "uint256", "name": "duration", - "type": "uint256" - } - ], - "name": "MinRegistrationDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" + "type": "uint64", + "internalType": "uint64" }, { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" + "name": "secret", + "type": "bytes32", + "internalType": "bytes32" }, { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + "name": "resolver", + "type": "address", + "internalType": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "ronPrice", - "type": "uint256" + "name": "data", + "type": "bytes[]", + "internalType": "bytes[]" }, { - "indexed": false, - "internalType": "uint256", - "name": "usdPrice", - "type": "uint256" - }, + "name": "reverseRecord", + "type": "bool", + "internalType": "bool" + } + ], + "outputs": [ { - "indexed": false, - "internalType": "uint64", - "name": "expires", - "type": "uint64" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "NameRegistered", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, + "type": "function", + "name": "computeId", "inputs": [ { - "indexed": false, - "internalType": "string", "name": "name", - "type": "string" - }, + "type": "string", + "internalType": "string" + } + ], + "outputs": [ { - "indexed": true, - "internalType": "uint256", "name": "id", - "type": "uint256" - }, + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getCommitmentAgeRange", + "inputs": [], + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "cost", - "type": "uint256" + "name": "minCommitmentAge", + "type": "uint256", + "internalType": "uint256" }, { - "indexed": false, - "internalType": "uint64", - "name": "expires", - "type": "uint64" + "name": "maxCommitmentAge", + "type": "uint256", + "internalType": "uint256" } ], - "name": "NameRenewed", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, - "inputs": [ + "type": "function", + "name": "getMinRegistrationDuration", + "inputs": [], + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "name": "", + "type": "uint256", + "internalType": "uint256" } ], - "name": "Paused", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "owners", - "type": "address[]" - }, + "type": "function", + "name": "getNameChecker", + "inputs": [], + "outputs": [ { - "indexed": false, - "internalType": "bool", - "name": "status", - "type": "bool" + "name": "", + "type": "address", + "internalType": "contract INameChecker" } ], - "name": "ProtectedNamesWhitelisted", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, - "inputs": [ + "type": "function", + "name": "getPriceOracle", + "inputs": [], + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "name": "", + "type": "address", + "internalType": "contract INSDomainPrice" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRNSUnified", + "inputs": [], + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "", + "type": "address", + "internalType": "contract INSUnified" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getReverseRegistrar", + "inputs": [], + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "name": "", + "type": "address", + "internalType": "contract INSReverseRegistrar" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, + "type": "function", + "name": "getRoleAdmin", "inputs": [ { - "indexed": true, - "internalType": "bytes32", "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "name": "", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "RoleGranted", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, + "type": "function", + "name": "getRoleMember", "inputs": [ { - "indexed": true, - "internalType": "bytes32", "name": "role", - "type": "bytes32" + "type": "bytes32", + "internalType": "bytes32" }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, + "name": "index", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "name": "", + "type": "address", + "internalType": "address" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view" }, { - "anonymous": false, + "type": "function", + "name": "getRoleMemberCount", "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "name": "role", + "type": "bytes32", + "internalType": "bytes32" } ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "bytes32", "name": "", - "type": "bytes32" + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "getTreasury", "inputs": [], - "name": "MIN_DOMAIN_LENGTH", "outputs": [ { - "internalType": "uint8", "name": "", - "type": "uint8" + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], - "name": "OPERATOR_ROLE", + "type": "function", + "name": "getWhitelistProtectedNameStatus", + "inputs": [ + { + "name": "id", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], "outputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "name": "status", + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], - "name": "PAUSER_ROLE", - "outputs": [ + "type": "function", + "name": "grantRole", + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "hasRole", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" } ], - "name": "available", "outputs": [ { - "internalType": "bool", "name": "", - "type": "bool" + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "initialize", "inputs": [ { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" + "name": "admin", + "type": "address", + "internalType": "address" }, { - "internalType": "address[]", - "name": "owners", - "type": "address[]" + "name": "pauser", + "type": "address", + "internalType": "address" }, { - "internalType": "bool", - "name": "status", - "type": "bool" + "name": "treasury", + "type": "address", + "internalType": "address payable" + }, + { + "name": "maxCommitmentAge", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "minCommitmentAge", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "minRegistrationDuration", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "rnsUnified", + "type": "address", + "internalType": "contract INSUnified" + }, + { + "name": "nameChecker", + "type": "address", + "internalType": "contract INameChecker" + }, + { + "name": "priceOracle", + "type": "address", + "internalType": "contract INSDomainPrice" + }, + { + "name": "reverseRegistrar", + "type": "address", + "internalType": "contract INSReverseRegistrar" } ], - "name": "bulkWhitelistProtectedNames", "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "nonpayable" }, { - "inputs": [ + "type": "function", + "name": "pause", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "paused", + "inputs": [], + "outputs": [ { - "internalType": "bytes32", - "name": "commitment", - "type": "bytes32" + "name": "", + "type": "bool", + "internalType": "bool" } ], - "name": "commit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "stateMutability": "view" }, { + "type": "function", + "name": "register", "inputs": [ { - "internalType": "string", "name": "name", - "type": "string" + "type": "string", + "internalType": "string" }, { - "internalType": "address", "name": "owner", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "uint64", "name": "duration", - "type": "uint64" + "type": "uint64", + "internalType": "uint64" }, { - "internalType": "bytes32", "name": "secret", - "type": "bytes32" + "type": "bytes32", + "internalType": "bytes32" }, { - "internalType": "address", "name": "resolver", - "type": "address" + "type": "address", + "internalType": "address" }, { - "internalType": "bytes[]", "name": "data", - "type": "bytes[]" + "type": "bytes[]", + "internalType": "bytes[]" }, { - "internalType": "bool", "name": "reverseRecord", - "type": "bool" + "type": "bool", + "internalType": "bool" } ], - "name": "computeCommitment", - "outputs": [ + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "registerProtectedName", + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "duration", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "resolver", + "type": "address", + "internalType": "address" + }, + { + "name": "data", + "type": "bytes[]", + "internalType": "bytes[]" + }, + { + "name": "reverseRecord", + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "payable" }, { + "type": "function", + "name": "renew", "inputs": [ { - "internalType": "string", "name": "name", - "type": "string" - } - ], - "name": "computeId", - "outputs": [ + "type": "string", + "internalType": "string" + }, { - "internalType": "uint256", - "name": "id", - "type": "uint256" + "name": "duration", + "type": "uint64", + "internalType": "uint64" } ], - "stateMutability": "pure", - "type": "function" + "outputs": [], + "stateMutability": "payable" }, { - "inputs": [], - "name": "getCommitmentAgeRange", - "outputs": [ + "type": "function", + "name": "renounceRole", + "inputs": [ { - "internalType": "uint256", - "name": "minCommitmentAge", - "type": "uint256" + "name": "role", + "type": "bytes32", + "internalType": "bytes32" }, { - "internalType": "uint256", - "name": "maxCommitmentAge", - "type": "uint256" + "name": "account", + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "getMinRegistrationDuration", - "outputs": [ + "type": "function", + "name": "rentPrice", + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "duration", + "type": "uint64", + "internalType": "uint64" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNameChecker", "outputs": [ { - "internalType": "contract INameChecker", - "name": "", - "type": "address" + "name": "usdPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ronPrice", + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], - "name": "getPriceOracle", - "outputs": [ + "type": "function", + "name": "revokeRole", + "inputs": [ { - "internalType": "contract INSDomainPrice", - "name": "", - "type": "address" + "name": "role", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "account", + "type": "address", + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "getRNSUnified", - "outputs": [ + "type": "function", + "name": "setCommitmentAge", + "inputs": [ { - "internalType": "contract INSUnified", - "name": "", - "type": "address" + "name": "minCommitmentAge", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxCommitmentAge", + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { - "inputs": [], - "name": "getReverseRegistrar", - "outputs": [ + "type": "function", + "name": "setMinRegistrationDuration", + "inputs": [ { - "internalType": "contract INSReverseRegistrar", - "name": "", - "type": "address" + "name": "duration", + "type": "uint256", + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "setPriceOracle", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "name": "priceOracle", + "type": "address", + "internalType": "contract INSDomainPrice" } ], - "name": "getRoleAdmin", - "outputs": [ + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setTreasury", + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "name": "addr", + "type": "address", + "internalType": "address payable" } ], - "stateMutability": "view", - "type": "function" + "outputs": [], + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "supportsInterface", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "name": "interfaceId", + "type": "bytes4", + "internalType": "bytes4" } ], - "name": "getRoleMember", "outputs": [ { - "internalType": "address", "name": "", - "type": "address" + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" + }, + { + "type": "function", + "name": "unpause", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" }, { + "type": "function", + "name": "valid", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "name": "name", + "type": "string", + "internalType": "string" } ], - "name": "getRoleMemberCount", "outputs": [ { - "internalType": "uint256", "name": "", - "type": "uint256" + "type": "bool", + "internalType": "bool" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "view" }, { - "inputs": [], - "name": "getTreasury", - "outputs": [ + "type": "event", + "name": "CommitmentAgeUpdated", + "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "minCommitmentAge", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "maxCommitmentAge", + "type": "uint256", + "indexed": false, + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "DomainPriceUpdated", "inputs": [ { - "internalType": "uint256", - "name": "id", - "type": "uint256" + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getWhitelistProtectedNameStatus", - "outputs": [ - { - "internalType": "bool", - "name": "status", - "type": "bool" + "name": "newDomainPrice", + "type": "address", + "indexed": false, + "internalType": "contract INSDomainPrice" } ], - "stateMutability": "view", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "Initialized", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "MinRegistrationDurationUpdated", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "name": "duration", + "type": "uint256", + "indexed": false, + "internalType": "uint256" } ], - "stateMutability": "view", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "NameRegistered", "inputs": [ { - "internalType": "address", - "name": "admin", - "type": "address" + "name": "name", + "type": "string", + "indexed": false, + "internalType": "string" }, { - "internalType": "address", - "name": "pauser", - "type": "address" + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" }, { - "internalType": "address payable", - "name": "treasury", - "type": "address" + "name": "owner", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "uint256", - "name": "maxCommitmentAge", - "type": "uint256" + "name": "ronPrice", + "type": "uint256", + "indexed": false, + "internalType": "uint256" }, { - "internalType": "uint256", - "name": "minCommitmentAge", - "type": "uint256" + "name": "usdPrice", + "type": "uint256", + "indexed": false, + "internalType": "uint256" }, { - "internalType": "uint256", - "name": "minRegistrationDuration", - "type": "uint256" - }, + "name": "expires", + "type": "uint64", + "indexed": false, + "internalType": "uint64" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "NameRenewed", + "inputs": [ { - "internalType": "contract INSUnified", - "name": "rnsUnified", - "type": "address" + "name": "name", + "type": "string", + "indexed": false, + "internalType": "string" }, { - "internalType": "contract INameChecker", - "name": "nameChecker", - "type": "address" + "name": "id", + "type": "uint256", + "indexed": true, + "internalType": "uint256" }, { - "internalType": "contract INSDomainPrice", - "name": "priceOracle", - "type": "address" + "name": "cost", + "type": "uint256", + "indexed": false, + "internalType": "uint256" }, { - "internalType": "contract INSReverseRegistrar", - "name": "reverseRegistrar", - "type": "address" + "name": "expires", + "type": "uint64", + "indexed": false, + "internalType": "uint64" } ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "anonymous": false }, { - "inputs": [], - "name": "paused", - "outputs": [ + "type": "event", + "name": "Paused", + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "name": "account", + "type": "address", + "indexed": false, + "internalType": "address" } ], - "stateMutability": "view", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "ProtectedNamesWhitelisted", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "operator", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "address", - "name": "owner", - "type": "address" + "name": "ids", + "type": "uint256[]", + "indexed": false, + "internalType": "uint256[]" }, { - "internalType": "uint64", - "name": "duration", - "type": "uint64" + "name": "owners", + "type": "address[]", + "indexed": false, + "internalType": "address[]" }, { - "internalType": "bytes32", - "name": "secret", - "type": "bytes32" - }, + "name": "status", + "type": "bool", + "indexed": false, + "internalType": "bool" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleAdminChanged", + "inputs": [ { - "internalType": "address", - "name": "resolver", - "type": "address" + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" }, { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" + "name": "previousAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" }, { - "internalType": "bool", - "name": "reverseRecord", - "type": "bool" + "name": "newAdminRole", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" } ], - "name": "register", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "RoleGranted", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" }, { - "internalType": "address", - "name": "owner", - "type": "address" + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "uint64", - "name": "duration", - "type": "uint64" - }, + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RoleRevoked", + "inputs": [ { - "internalType": "address", - "name": "resolver", - "type": "address" + "name": "role", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" }, { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" + "name": "account", + "type": "address", + "indexed": true, + "internalType": "address" }, { - "internalType": "bool", - "name": "reverseRecord", - "type": "bool" + "name": "sender", + "type": "address", + "indexed": true, + "internalType": "address" } ], - "name": "registerProtectedName", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "TreasuryUpdated", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint64", - "name": "duration", - "type": "uint64" + "name": "addr", + "type": "address", + "indexed": true, + "internalType": "address" } ], - "name": "renew", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "anonymous": false }, { + "type": "event", + "name": "Unpaused", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", "name": "account", - "type": "address" + "type": "address", + "indexed": false, + "internalType": "address" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "anonymous": false }, { + "type": "error", + "name": "CommitmentTooNew", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "uint64", - "name": "duration", - "type": "uint64" + "name": "commitment", + "type": "bytes32", + "internalType": "bytes32" } - ], - "name": "rentPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "usdPrice", - "type": "uint256" - }, + ] + }, + { + "type": "error", + "name": "CommitmentTooOld", + "inputs": [ { - "internalType": "uint256", - "name": "ronPrice", - "type": "uint256" + "name": "commitment", + "type": "bytes32", + "internalType": "bytes32" } - ], - "stateMutability": "view", - "type": "function" + ] }, { + "type": "error", + "name": "DurationTooShort", "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "name": "duration", + "type": "uint64", + "internalType": "uint64" } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ] }, { + "type": "error", + "name": "ErrInvalidRegisterProtectedName", "inputs": [ { - "internalType": "uint256", - "name": "minCommitmentAge", - "type": "uint256" + "name": "name", + "type": "string", + "internalType": "string" + }, + { + "name": "requestOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "nameProtected", + "type": "bool", + "internalType": "bool" }, { - "internalType": "uint256", - "name": "maxCommitmentAge", - "type": "uint256" + "name": "ownerWhitelisted", + "type": "bool", + "internalType": "bool" } - ], - "name": "setCommitmentAge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ] }, { + "type": "error", + "name": "ErrRequestedForProtectedName", "inputs": [ { - "internalType": "uint256", - "name": "duration", - "type": "uint256" + "name": "name", + "type": "string", + "internalType": "string" } - ], - "name": "setMinRegistrationDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + ] }, { - "inputs": [ - { - "internalType": "contract INSDomainPrice", - "name": "priceOracle", - "type": "address" - } - ], - "name": "setPriceOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "error", + "name": "InsufficientValue", + "inputs": [] }, { - "inputs": [ - { - "internalType": "address payable", - "name": "addr", - "type": "address" - } - ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "error", + "name": "InvalidArrayLength", + "inputs": [] + }, + { + "type": "error", + "name": "MaxCommitmentAgeTooHigh", + "inputs": [] + }, + { + "type": "error", + "name": "MaxCommitmentAgeTooLow", + "inputs": [] }, { + "type": "error", + "name": "NameNotAvailable", "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "name": "name", + "type": "string", + "internalType": "string" } - ], - "stateMutability": "view", - "type": "function" + ] }, { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "error", + "name": "NullAddress", + "inputs": [] + }, + { + "type": "error", + "name": "ResolverRequiredWhenDataSupplied", + "inputs": [] }, { + "type": "error", + "name": "Unauthorized", "inputs": [ { - "internalType": "string", - "name": "name", - "type": "string" + "name": "node", + "type": "bytes32", + "internalType": "bytes32" } - ], - "name": "valid", - "outputs": [ + ] + }, + { + "type": "error", + "name": "UnexpiredCommitmentExists", + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "name": "commitment", + "type": "bytes32", + "internalType": "bytes32" } - ], - "stateMutability": "view", - "type": "function" + ] } ], - "address": "0x7DF2732B400ed050C0cFDe58A0DBD870c0502792", - "args": "0x", - "ast": { - "absolutePath": "src/RONRegistrarController.sol", - "id": 65992, - "exportedSymbols": { - "AccessControlEnumerable": [ - 48975 - ], - "INSDomainPrice": [ - 66670 - ], - "INSReverseRegistrar": [ - 66789 - ], - "INSUnified": [ - 67046 - ], - "INameChecker": [ - 67165 - ], - "IPublicResolver": [ - 67887 - ], - "IRONRegistrarController": [ - 67531 - ], - "Initializable": [ - 50248 - ], - "LibRNSDomain": [ - 68113 - ], - "LibString": [ - 68395 - ], - "Pausable": [ - 50356 - ], - "RONRegistrarController": [ - 65991 - ], - "RONTransferHelper": [ - 69515 - ], - "ReentrancyGuard": [ - 50421 - ] - }, - "nodeType": "SourceUnit", - "src": "32:14706:99", - "nodes": [ - { - "id": 64827, - "nodeType": "PragmaDirective", - "src": "32:24:99", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".19" - ] - }, - { - "id": 64829, - "nodeType": "ImportDirective", - "src": "58:73:99", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/security/Pausable.sol", - "file": "@openzeppelin/contracts/security/Pausable.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 50357, - "symbolAliases": [ - { - "foreign": { - "id": 64828, - "name": "Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50356, - "src": "67:8:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64831, - "nodeType": "ImportDirective", - "src": "132:86:99", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 50249, - "symbolAliases": [ - { - "foreign": { - "id": 64830, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50248, - "src": "141:13:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64833, - "nodeType": "ImportDirective", - "src": "219:87:99", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol", - "file": "@openzeppelin/contracts/security/ReentrancyGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 50422, - "symbolAliases": [ - { - "foreign": { - "id": 64832, - "name": "ReentrancyGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50421, - "src": "228:15:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64835, - "nodeType": "ImportDirective", - "src": "307:101:99", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol", - "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 48976, - "symbolAliases": [ - { - "foreign": { - "id": 64834, - "name": "AccessControlEnumerable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48975, - "src": "316:23:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64837, - "nodeType": "ImportDirective", - "src": "409:77:99", - "nodes": [], - "absolutePath": "src/interfaces/resolvers/IPublicResolver.sol", - "file": "./interfaces/resolvers/IPublicResolver.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 67888, - "symbolAliases": [ - { - "foreign": { - "id": 64836, - "name": "IPublicResolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67887, - "src": "418:15:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64843, - "nodeType": "ImportDirective", - "src": "487:156:99", - "nodes": [], - "absolutePath": "src/interfaces/IRONRegistrarController.sol", - "file": "./interfaces/IRONRegistrarController.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 67532, - "symbolAliases": [ - { - "foreign": { - "id": 64838, - "name": "INSUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67046, - "src": "498:10:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 64839, - "name": "INameChecker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67165, - "src": "512:12:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 64840, - "name": "INSDomainPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66670, - "src": "528:14:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 64841, - "name": "INSReverseRegistrar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66789, - "src": "546:19:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 64842, - "name": "IRONRegistrarController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67531, - "src": "569:23:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64845, - "nodeType": "ImportDirective", - "src": "644:54:99", - "nodes": [], - "absolutePath": "src/libraries/LibString.sol", - "file": "./libraries/LibString.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 68396, - "symbolAliases": [ - { - "foreign": { - "id": 64844, - "name": "LibString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68395, - "src": "653:9:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64847, - "nodeType": "ImportDirective", - "src": "699:60:99", - "nodes": [], - "absolutePath": "src/libraries/LibRNSDomain.sol", - "file": "./libraries/LibRNSDomain.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 68114, - "symbolAliases": [ - { - "foreign": { - "id": 64846, - "name": "LibRNSDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68113, - "src": "708:12:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 64849, - "nodeType": "ImportDirective", - "src": "760:80:99", - "nodes": [], - "absolutePath": "src/libraries/transfers/RONTransferHelper.sol", - "file": "./libraries/transfers/RONTransferHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 65992, - "sourceUnit": 69516, - "symbolAliases": [ - { - "foreign": { - "id": 64848, - "name": "RONTransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69515, - "src": "769:17:99", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 65991, - "nodeType": "ContractDefinition", - "src": "1161:13576:99", - "nodes": [ - { - "id": 64863, - "nodeType": "UsingForDirective", - "src": "1301:27:99", - "nodes": [], - "global": false, - "libraryName": { - "id": 64861, - "name": "LibString", - "nameLocations": [ - "1307:9:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 68395, - "src": "1307:9:99" - }, - "typeName": { - "id": 64862, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1321:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - { - "id": 64866, - "nodeType": "UsingForDirective", - "src": "1331:30:99", - "nodes": [], - "global": false, - "libraryName": { - "id": 64864, - "name": "LibRNSDomain", - "nameLocations": [ - "1337:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 68113, - "src": "1337:12:99" - }, - "typeName": { - "id": 64865, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1354:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - { - "id": 64870, - "nodeType": "VariableDeclaration", - "src": "1409:43:99", - "nodes": [], - "baseFunctions": [ - 67488 - ], - "constant": true, - "documentation": { - "id": 64867, - "nodeType": "StructuredDocumentation", - "src": "1365:41:99", - "text": "@dev The minimum domain name's length" - }, - "functionSelector": "29aa4f51", - "mutability": "constant", - "name": "MIN_DOMAIN_LENGTH", - "nameLocation": "1431:17:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 64868, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1409:5:99", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "hexValue": "33", - "id": 64869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1451:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "visibility": "public" - }, - { - "id": 64876, - "nodeType": "VariableDeclaration", - "src": "1498:62:99", - "nodes": [], - "baseFunctions": [ - 67476 - ], - "constant": true, - "documentation": { - "id": 64871, - "nodeType": "StructuredDocumentation", - "src": "1456:39:99", - "text": "@inheritdoc IRONRegistrarController" - }, - "functionSelector": "e63ab1e9", - "mutability": "constant", - "name": "PAUSER_ROLE", - "nameLocation": "1522:11:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 64872, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1498:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "5041555345525f524f4c45", - "id": 64874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1546:13:99", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "typeString": "literal_string \"PAUSER_ROLE\"" - }, - "value": "PAUSER_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a", - "typeString": "literal_string \"PAUSER_ROLE\"" - } - ], - "id": 64873, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1536:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 64875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1536:24:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 64882, - "nodeType": "VariableDeclaration", - "src": "1606:66:99", - "nodes": [], - "baseFunctions": [ - 67482 - ], - "constant": true, - "documentation": { - "id": 64877, - "nodeType": "StructuredDocumentation", - "src": "1564:39:99", - "text": "@inheritdoc IRONRegistrarController" - }, - "functionSelector": "f5b541a6", - "mutability": "constant", - "name": "OPERATOR_ROLE", - "nameLocation": "1630:13:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 64878, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1606:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "4f50455241544f525f524f4c45", - "id": 64880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1656:15:99", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929", - "typeString": "literal_string \"OPERATOR_ROLE\"" - }, - "value": "OPERATOR_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929", - "typeString": "literal_string \"OPERATOR_ROLE\"" - } - ], - "id": 64879, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1646:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 64881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1646:26:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 64887, - "nodeType": "VariableDeclaration", - "src": "1712:27:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64883, - "nodeType": "StructuredDocumentation", - "src": "1677:32:99", - "text": "@dev Gap for upgradeability." - }, - "mutability": "mutable", - "name": "____gap", - "nameLocation": "1732:7:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 64884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1712:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 64886, - "length": { - "hexValue": "3530", - "id": 64885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1720:2:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "1712:11:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - }, - { - "id": 64890, - "nodeType": "VariableDeclaration", - "src": "1822:34:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64888, - "nodeType": "StructuredDocumentation", - "src": "1744:75:99", - "text": "@dev Minimum duration between commitment and registration in second(s)." - }, - "mutability": "mutable", - "name": "_minCommitmentAge", - "nameLocation": "1839:17:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64889, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1822:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "id": 64893, - "nodeType": "VariableDeclaration", - "src": "1938:34:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64891, - "nodeType": "StructuredDocumentation", - "src": "1860:75:99", - "text": "@dev Maximum duration between commitment and registration in second(s)." - }, - "mutability": "mutable", - "name": "_maxCommitmentAge", - "nameLocation": "1955:17:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64892, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1938:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "id": 64896, - "nodeType": "VariableDeclaration", - "src": "2013:41:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64894, - "nodeType": "StructuredDocumentation", - "src": "1976:34:99", - "text": "@dev Min registration duration" - }, - "mutability": "mutable", - "name": "_minRegistrationDuration", - "nameLocation": "2030:24:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64895, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2013:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "id": 64899, - "nodeType": "VariableDeclaration", - "src": "2092:34:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64897, - "nodeType": "StructuredDocumentation", - "src": "2059:30:99", - "text": "@dev The treasury address." - }, - "mutability": "mutable", - "name": "_treasury", - "nameLocation": "2117:9:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 64898, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2092:15:99", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "id": 64903, - "nodeType": "VariableDeclaration", - "src": "2167:31:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64900, - "nodeType": "StructuredDocumentation", - "src": "2130:34:99", - "text": "@dev The rns unified contract." - }, - "mutability": "mutable", - "name": "_rnsUnified", - "nameLocation": "2187:11:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - }, - "typeName": { - "id": 64902, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64901, - "name": "INSUnified", - "nameLocations": [ - "2167:10:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67046, - "src": "2167:10:99" - }, - "referencedDeclaration": 67046, - "src": "2167:10:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "visibility": "internal" - }, - { - "id": 64907, - "nodeType": "VariableDeclaration", - "src": "2239:34:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64904, - "nodeType": "StructuredDocumentation", - "src": "2202:34:99", - "text": "@dev The namechecker contract." - }, - "mutability": "mutable", - "name": "_nameChecker", - "nameLocation": "2261:12:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - }, - "typeName": { - "id": 64906, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64905, - "name": "INameChecker", - "nameLocations": [ - "2239:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67165, - "src": "2239:12:99" - }, - "referencedDeclaration": 67165, - "src": "2239:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "visibility": "internal" - }, - { - "id": 64911, - "nodeType": "VariableDeclaration", - "src": "2306:36:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64908, - "nodeType": "StructuredDocumentation", - "src": "2277:26:99", - "text": "@dev The price oracle." - }, - "mutability": "mutable", - "name": "_priceOracle", - "nameLocation": "2330:12:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - }, - "typeName": { - "id": 64910, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64909, - "name": "INSDomainPrice", - "nameLocations": [ - "2306:14:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66670, - "src": "2306:14:99" - }, - "referencedDeclaration": 66670, - "src": "2306:14:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "visibility": "internal" - }, - { - "id": 64915, - "nodeType": "VariableDeclaration", - "src": "2389:46:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64912, - "nodeType": "StructuredDocumentation", - "src": "2346:40:99", - "text": "@dev The reverse registrar contract." - }, - "mutability": "mutable", - "name": "_reverseRegistrar", - "nameLocation": "2418:17:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - }, - "typeName": { - "id": 64914, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64913, - "name": "INSReverseRegistrar", - "nameLocations": [ - "2389:19:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66789, - "src": "2389:19:99" - }, - "referencedDeclaration": 66789, - "src": "2389:19:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "visibility": "internal" - }, - { - "id": 64920, - "nodeType": "VariableDeclaration", - "src": "2515:70:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64916, - "nodeType": "StructuredDocumentation", - "src": "2440:72:99", - "text": "@dev Mapping from commitment hash => timestamp that commitment made." - }, - "mutability": "mutable", - "name": "_committedAt", - "nameLocation": "2573:12:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 64919, - "keyName": "commitment", - "keyNameLocation": "2531:10:99", - "keyType": { - "id": 64917, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2523:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2515:48:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueName": "timestamp", - "valueNameLocation": "2553:9:99", - "valueType": { - "id": 64918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2545:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "id": 64927, - "nodeType": "VariableDeclaration", - "src": "2694:89:99", - "nodes": [], - "constant": false, - "documentation": { - "id": 64921, - "nodeType": "StructuredDocumentation", - "src": "2589:102:99", - "text": "@dev Mapping id => owner => flag indicating whether the owner is whitelisted to buy protected name" - }, - "mutability": "mutable", - "name": "_protectedNamesWhitelisted", - "nameLocation": "2757:26:99", - "scope": 65991, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "typeName": { - "id": 64926, - "keyName": "id", - "keyNameLocation": "2710:2:99", - "keyType": { - "id": 64922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2702:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2694:53:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 64925, - "keyName": "owner", - "keyNameLocation": "2732:5:99", - "keyType": { - "id": 64923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2724:7:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2716:30:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 64924, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2741:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "visibility": "internal" - }, - { - "id": 64937, - "nodeType": "ModifierDefinition", - "src": "2788:84:99", - "nodes": [], - "body": { - "id": 64936, - "nodeType": "Block", - "src": "2831:41:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 64932, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64929, - "src": "2855:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 64931, - "name": "_requireAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65990, - "src": "2837:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) view" - } - }, - "id": 64933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2837:23:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64934, - "nodeType": "ExpressionStatement", - "src": "2837:23:99" - }, - { - "id": 64935, - "nodeType": "PlaceholderStatement", - "src": "2866:1:99" - } - ] - }, - "name": "onlyAvailable", - "nameLocation": "2797:13:99", - "parameters": { - "id": 64930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 64929, - "mutability": "mutable", - "name": "name", - "nameLocation": "2825:4:99", - "nodeType": "VariableDeclaration", - "scope": 64937, - "src": "2811:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 64928, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2811:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2810:20:99" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 64944, - "nodeType": "FunctionDefinition", - "src": "2876:55:99", - "nodes": [], - "body": { - "id": 64943, - "nodeType": "Block", - "src": "2898:33:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 64940, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50229, - "src": "2904:20:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 64941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2904:22:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64942, - "nodeType": "ExpressionStatement", - "src": "2904:22:99" - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 64938, - "nodeType": "ParameterList", - "parameters": [], - "src": "2887:2:99" - }, - "returnParameters": { - "id": 64939, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:99" - }, - "scope": 65991, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 65013, - "nodeType": "FunctionDefinition", - "src": "2935:710:99", - "nodes": [], - "body": { - "id": 65012, - "nodeType": "Block", - "src": "3277:368:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 64974, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64876, - "src": "3294:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 64975, - "name": "pauser", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64948, - "src": "3307:6:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 64973, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48758, - "src": "3283:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 64976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3283:31:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64977, - "nodeType": "ExpressionStatement", - "src": "3283:31:99" - }, - { - "expression": { - "arguments": [ - { - "id": 64979, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48562, - "src": "3331:18:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 64980, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64946, - "src": "3351:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 64978, - "name": "_setupRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48758, - "src": "3320:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (bytes32,address)" - } - }, - "id": 64981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3320:37:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64982, - "nodeType": "ExpressionStatement", - "src": "3320:37:99" - }, - { - "expression": { - "arguments": [ - { - "id": 64984, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64965, - "src": "3380:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - ], - "id": 64983, - "name": "_setPriceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65974, - "src": "3364:15:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_INSDomainPrice_$66670_$returns$__$", - "typeString": "function (contract INSDomainPrice)" - } - }, - "id": 64985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3364:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64986, - "nodeType": "ExpressionStatement", - "src": "3364:28:99" - }, - { - "expression": { - "arguments": [ - { - "id": 64988, - "name": "minRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64956, - "src": "3426:23:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 64987, - "name": "_setMinRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65777, - "src": "3398:27:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 64989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3398:52:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64990, - "nodeType": "ExpressionStatement", - "src": "3398:52:99" - }, - { - "expression": { - "arguments": [ - { - "id": 64992, - "name": "minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64954, - "src": "3474:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 64993, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64952, - "src": "3492:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 64991, - "name": "_setCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65636, - "src": "3456:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 64994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3456:53:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 64995, - "nodeType": "ExpressionStatement", - "src": "3456:53:99" - }, - { - "expression": { - "id": 64998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 64996, - "name": "_treasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64899, - "src": "3516:9:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 64997, - "name": "treasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64950, - "src": "3528:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3516:20:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 64999, - "nodeType": "ExpressionStatement", - "src": "3516:20:99" - }, - { - "expression": { - "id": 65002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65000, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "3542:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65001, - "name": "rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64959, - "src": "3556:10:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "src": "3542:24:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65003, - "nodeType": "ExpressionStatement", - "src": "3542:24:99" - }, - { - "expression": { - "id": 65006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65004, - "name": "_nameChecker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64907, - "src": "3572:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65005, - "name": "nameChecker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64962, - "src": "3587:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "src": "3572:26:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "id": 65007, - "nodeType": "ExpressionStatement", - "src": "3572:26:99" - }, - { - "expression": { - "id": 65010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65008, - "name": "_reverseRegistrar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64915, - "src": "3604:17:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65009, - "name": "reverseRegistrar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64968, - "src": "3624:16:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "src": "3604:36:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "id": 65011, - "nodeType": "ExpressionStatement", - "src": "3604:36:99" - } - ] - }, - "functionSelector": "64c65705", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 64971, - "kind": "modifierInvocation", - "modifierName": { - "id": 64970, - "name": "initializer", - "nameLocations": [ - "3265:11:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50150, - "src": "3265:11:99" - }, - "nodeType": "ModifierInvocation", - "src": "3265:11:99" - } - ], - "name": "initialize", - "nameLocation": "2944:10:99", - "parameters": { - "id": 64969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 64946, - "mutability": "mutable", - "name": "admin", - "nameLocation": "2968:5:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "2960:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 64945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2960:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64948, - "mutability": "mutable", - "name": "pauser", - "nameLocation": "2987:6:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "2979:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 64947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2979:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64950, - "mutability": "mutable", - "name": "treasury", - "nameLocation": "3015:8:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "2999:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 64949, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2999:15:99", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64952, - "mutability": "mutable", - "name": "maxCommitmentAge", - "nameLocation": "3037:16:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3029:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3029:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64954, - "mutability": "mutable", - "name": "minCommitmentAge", - "nameLocation": "3067:16:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3059:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64953, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3059:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64956, - "mutability": "mutable", - "name": "minRegistrationDuration", - "nameLocation": "3097:23:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3089:31:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3089:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64959, - "mutability": "mutable", - "name": "rnsUnified", - "nameLocation": "3137:10:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3126:21:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - }, - "typeName": { - "id": 64958, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64957, - "name": "INSUnified", - "nameLocations": [ - "3126:10:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67046, - "src": "3126:10:99" - }, - "referencedDeclaration": 67046, - "src": "3126:10:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64962, - "mutability": "mutable", - "name": "nameChecker", - "nameLocation": "3166:11:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3153:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - }, - "typeName": { - "id": 64961, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64960, - "name": "INameChecker", - "nameLocations": [ - "3153:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67165, - "src": "3153:12:99" - }, - "referencedDeclaration": 67165, - "src": "3153:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64965, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "3198:11:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3183:26:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - }, - "typeName": { - "id": 64964, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64963, - "name": "INSDomainPrice", - "nameLocations": [ - "3183:14:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66670, - "src": "3183:14:99" - }, - "referencedDeclaration": 66670, - "src": "3183:14:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64968, - "mutability": "mutable", - "name": "reverseRegistrar", - "nameLocation": "3235:16:99", - "nodeType": "VariableDeclaration", - "scope": 65013, - "src": "3215:36:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - }, - "typeName": { - "id": 64967, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 64966, - "name": "INSReverseRegistrar", - "nameLocations": [ - "3215:19:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66789, - "src": "3215:19:99" - }, - "referencedDeclaration": 66789, - "src": "3215:19:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "visibility": "internal" - } - ], - "src": "2954:301:99" - }, - "returnParameters": { - "id": 64972, - "nodeType": "ParameterList", - "parameters": [], - "src": "3277:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65024, - "nodeType": "FunctionDefinition", - "src": "3702:67:99", - "nodes": [], - "body": { - "id": 65023, - "nodeType": "Block", - "src": "3750:19:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65020, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50339, - "src": "3756:6:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 65021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3756:8:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65022, - "nodeType": "ExpressionStatement", - "src": "3756:8:99" - } - ] - }, - "baseFunctions": [ - 67466 - ], - "documentation": { - "id": 65014, - "nodeType": "StructuredDocumentation", - "src": "3649:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "8456cb59", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65017, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64876, - "src": "3737:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65018, - "kind": "modifierInvocation", - "modifierName": { - "id": 65016, - "name": "onlyRole", - "nameLocations": [ - "3728:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "3728:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "3728:21:99" - } - ], - "name": "pause", - "nameLocation": "3711:5:99", - "parameters": { - "id": 65015, - "nodeType": "ParameterList", - "parameters": [], - "src": "3716:2:99" - }, - "returnParameters": { - "id": 65019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3750:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65035, - "nodeType": "FunctionDefinition", - "src": "3826:71:99", - "nodes": [], - "body": { - "id": 65034, - "nodeType": "Block", - "src": "3876:21:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65031, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50355, - "src": "3882:8:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 65032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3882:10:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65033, - "nodeType": "ExpressionStatement", - "src": "3882:10:99" - } - ] - }, - "baseFunctions": [ - 67470 - ], - "documentation": { - "id": 65025, - "nodeType": "StructuredDocumentation", - "src": "3773:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "3f4ba83a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65028, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64876, - "src": "3863:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65029, - "kind": "modifierInvocation", - "modifierName": { - "id": 65027, - "name": "onlyRole", - "nameLocations": [ - "3854:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "3854:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "3854:21:99" - } - ], - "name": "unpause", - "nameLocation": "3835:7:99", - "parameters": { - "id": 65026, - "nodeType": "ParameterList", - "parameters": [], - "src": "3842:2:99" - }, - "returnParameters": { - "id": 65030, - "nodeType": "ParameterList", - "parameters": [], - "src": "3876:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65044, - "nodeType": "FunctionDefinition", - "src": "3954:110:99", - "nodes": [], - "body": { - "id": 65043, - "nodeType": "Block", - "src": "4022:42:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65041, - "name": "_minRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64896, - "src": "4035:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 65040, - "id": 65042, - "nodeType": "Return", - "src": "4028:31:99" - } - ] - }, - "baseFunctions": [ - 67494 - ], - "documentation": { - "id": 65036, - "nodeType": "StructuredDocumentation", - "src": "3901:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "42c20288", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMinRegistrationDuration", - "nameLocation": "3963:26:99", - "parameters": { - "id": 65037, - "nodeType": "ParameterList", - "parameters": [], - "src": "3989:2:99" - }, - "returnParameters": { - "id": 65040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65039, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65044, - "src": "4013:7:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4013:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4012:9:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 65087, - "nodeType": "FunctionDefinition", - "src": "4121:335:99", - "nodes": [], - "body": { - "id": 65086, - "nodeType": "Block", - "src": "4234:222:99", - "nodes": [], - "statements": [ - { - "assignments": [ - 65060, - 65063 - ], - "declarations": [ - { - "constant": false, - "id": 65060, - "mutability": "mutable", - "name": "basePrice", - "nameLocation": "4273:9:99", - "nodeType": "VariableDeclaration", - "scope": 65086, - "src": "4241:41:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice" - }, - "typeName": { - "id": 65059, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65058, - "name": "INSDomainPrice.UnitPrice", - "nameLocations": [ - "4241:14:99", - "4256:9:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66422, - "src": "4241:24:99" - }, - "referencedDeclaration": 66422, - "src": "4241:24:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_storage_ptr", - "typeString": "struct INSDomainPrice.UnitPrice" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65063, - "mutability": "mutable", - "name": "tax", - "nameLocation": "4316:3:99", - "nodeType": "VariableDeclaration", - "scope": 65086, - "src": "4284:35:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice" - }, - "typeName": { - "id": 65062, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65061, - "name": "INSDomainPrice.UnitPrice", - "nameLocations": [ - "4284:14:99", - "4299:9:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66422, - "src": "4284:24:99" - }, - "referencedDeclaration": 66422, - "src": "4284:24:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_storage_ptr", - "typeString": "struct INSDomainPrice.UnitPrice" - } - }, - "visibility": "internal" - } - ], - "id": 65069, - "initialValue": { - "arguments": [ - { - "id": 65066, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65047, - "src": "4356:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65067, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65049, - "src": "4362:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "id": 65064, - "name": "_priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64911, - "src": "4329:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "id": 65065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4342:13:99", - "memberName": "getRenewalFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 66576, - "src": "4329:26:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_uint256_$returns$_t_struct$_UnitPrice_$66422_memory_ptr_$_t_struct$_UnitPrice_$66422_memory_ptr_$", - "typeString": "function (string memory,uint256) view external returns (struct INSDomainPrice.UnitPrice memory,struct INSDomainPrice.UnitPrice memory)" - } - }, - "id": 65068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4329:42:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_struct$_UnitPrice_$66422_memory_ptr_$_t_struct$_UnitPrice_$66422_memory_ptr_$", - "typeString": "tuple(struct INSDomainPrice.UnitPrice memory,struct INSDomainPrice.UnitPrice memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4240:131:99" - }, - { - "expression": { - "id": 65076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65070, - "name": "usdPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65052, - "src": "4377:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65071, - "name": "basePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65060, - "src": "4388:9:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice memory" - } - }, - "id": 65072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4398:3:99", - "memberName": "usd", - "nodeType": "MemberAccess", - "referencedDeclaration": 66419, - "src": "4388:13:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 65073, - "name": "tax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65063, - "src": "4404:3:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice memory" - } - }, - "id": 65074, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4408:3:99", - "memberName": "usd", - "nodeType": "MemberAccess", - "referencedDeclaration": 66419, - "src": "4404:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4388:23:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4377:34:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65077, - "nodeType": "ExpressionStatement", - "src": "4377:34:99" - }, - { - "expression": { - "id": 65084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65078, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65054, - "src": "4417:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65079, - "name": "basePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65060, - "src": "4428:9:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice memory" - } - }, - "id": 65080, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4438:3:99", - "memberName": "ron", - "nodeType": "MemberAccess", - "referencedDeclaration": 66421, - "src": "4428:13:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 65081, - "name": "tax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65063, - "src": "4444:3:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UnitPrice_$66422_memory_ptr", - "typeString": "struct INSDomainPrice.UnitPrice memory" - } - }, - "id": 65082, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4448:3:99", - "memberName": "ron", - "nodeType": "MemberAccess", - "referencedDeclaration": 66421, - "src": "4444:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4428:23:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4417:34:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65085, - "nodeType": "ExpressionStatement", - "src": "4417:34:99" - } - ] - }, - "baseFunctions": [ - 67312 - ], - "documentation": { - "id": 65045, - "nodeType": "StructuredDocumentation", - "src": "4068:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "b24b17b0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "rentPrice", - "nameLocation": "4130:9:99", - "parameters": { - "id": 65050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65047, - "mutability": "mutable", - "name": "name", - "nameLocation": "4154:4:99", - "nodeType": "VariableDeclaration", - "scope": 65087, - "src": "4140:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4140:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65049, - "mutability": "mutable", - "name": "duration", - "nameLocation": "4167:8:99", - "nodeType": "VariableDeclaration", - "scope": 65087, - "src": "4160:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65048, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4160:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "4139:37:99" - }, - "returnParameters": { - "id": 65055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65052, - "mutability": "mutable", - "name": "usdPrice", - "nameLocation": "4206:8:99", - "nodeType": "VariableDeclaration", - "scope": 65087, - "src": "4198:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4198:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65054, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "4224:8:99", - "nodeType": "VariableDeclaration", - "scope": 65087, - "src": "4216:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65053, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4216:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4197:36:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 65108, - "nodeType": "FunctionDefinition", - "src": "4513:147:99", - "nodes": [], - "body": { - "id": 65107, - "nodeType": "Block", - "src": "4575:85:99", - "nodes": [], - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 65105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 65095, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65090, - "src": "4588:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "id": 65096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4593:6:99", - "memberName": "strlen", - "nodeType": "MemberAccess", - "referencedDeclaration": 68220, - "src": "4588:11:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_string_memory_ptr_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4588:13:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 65098, - "name": "MIN_DOMAIN_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64870, - "src": "4605:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4588:34:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "id": 65104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4626:29:99", - "subExpression": { - "arguments": [ - { - "id": 65102, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65090, - "src": "4650:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 65100, - "name": "_nameChecker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64907, - "src": "4627:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "id": 65101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4640:9:99", - "memberName": "forbidden", - "nodeType": "MemberAccess", - "referencedDeclaration": 67130, - "src": "4627:22:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view external returns (bool)" - } - }, - "id": 65103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4627:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4588:67:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 65094, - "id": 65106, - "nodeType": "Return", - "src": "4581:74:99" - } - ] - }, - "baseFunctions": [ - 67328 - ], - "documentation": { - "id": 65088, - "nodeType": "StructuredDocumentation", - "src": "4460:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "9791c097", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "valid", - "nameLocation": "4522:5:99", - "parameters": { - "id": 65091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65090, - "mutability": "mutable", - "name": "name", - "nameLocation": "4542:4:99", - "nodeType": "VariableDeclaration", - "scope": 65108, - "src": "4528:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65089, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4528:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4527:20:99" - }, - "returnParameters": { - "id": 65094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65093, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65108, - "src": "4569:4:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65092, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4569:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4568:6:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 65128, - "nodeType": "FunctionDefinition", - "src": "4717:137:99", - "nodes": [], - "body": { - "id": 65127, - "nodeType": "Block", - "src": "4783:71:99", - "nodes": [], - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 65125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 65117, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65111, - "src": "4802:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65116, - "name": "valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65108, - "src": "4796:5:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view returns (bool)" - } - }, - "id": 65118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4796:11:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 65122, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65111, - "src": "4843:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65121, - "name": "computeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65199, - "src": "4833:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4833:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65119, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "4811:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4823:9:99", - "memberName": "available", - "nodeType": "MemberAccess", - "referencedDeclaration": 66924, - "src": "4811:21:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view external returns (bool)" - } - }, - "id": 65124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4811:38:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4796:53:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 65115, - "id": 65126, - "nodeType": "Return", - "src": "4789:60:99" - } - ] - }, - "baseFunctions": [ - 67336 - ], - "documentation": { - "id": 65109, - "nodeType": "StructuredDocumentation", - "src": "4664:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "aeb8ce9b", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "available", - "nameLocation": "4726:9:99", - "parameters": { - "id": 65112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65111, - "mutability": "mutable", - "name": "name", - "nameLocation": "4750:4:99", - "nodeType": "VariableDeclaration", - "scope": 65128, - "src": "4736:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65110, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4736:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4735:20:99" - }, - "returnParameters": { - "id": 65115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65114, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65128, - "src": "4777:4:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65113, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4777:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4776:6:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 65183, - "nodeType": "FunctionDefinition", - "src": "4911:445:99", - "nodes": [], - "body": { - "id": 65182, - "nodeType": "Block", - "src": "5149:207:99", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 65162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65152, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65142, - "src": "5159:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 65153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5164:6:99", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5159:11:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 65154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5174:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5159:16:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 65161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65156, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65139, - "src": "5179:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 65159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5199:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 65158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5191:7:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 65157, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5191:7:99", - "typeDescriptions": {} - } - }, - "id": 65160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5191:10:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5179:22:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5159:42:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65166, - "nodeType": "IfStatement", - "src": "5155:89:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65163, - "name": "ResolverRequiredWhenDataSupplied", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67199, - "src": "5210:32:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5210:34:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65165, - "nodeType": "RevertStatement", - "src": "5203:41:99" - } - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 65171, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65131, - "src": "5288:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65170, - "name": "computeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65199, - "src": "5278:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5278:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65173, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65133, - "src": "5295:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65174, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65135, - "src": "5302:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 65175, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65137, - "src": "5312:6:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 65176, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65139, - "src": "5320:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65177, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65142, - "src": "5330:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - { - "id": 65178, - "name": "reverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65144, - "src": "5336:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "id": 65168, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "5267:3:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 65169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5271:6:99", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "5267:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 65179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5267:83:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 65167, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "5257:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 65180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5257:94:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 65151, - "id": 65181, - "nodeType": "Return", - "src": "5250:101:99" - } - ] - }, - "baseFunctions": [ - 67357 - ], - "documentation": { - "id": 65129, - "nodeType": "StructuredDocumentation", - "src": "4858:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "db9bf5ed", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65147, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65131, - "src": "5125:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 65148, - "kind": "modifierInvocation", - "modifierName": { - "id": 65146, - "name": "onlyAvailable", - "nameLocations": [ - "5111:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 64937, - "src": "5111:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "5111:19:99" - } - ], - "name": "computeCommitment", - "nameLocation": "4920:17:99", - "parameters": { - "id": 65145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65131, - "mutability": "mutable", - "name": "name", - "nameLocation": "4957:4:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "4943:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65130, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4943:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65133, - "mutability": "mutable", - "name": "owner", - "nameLocation": "4975:5:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "4967:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4967:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65135, - "mutability": "mutable", - "name": "duration", - "nameLocation": "4993:8:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "4986:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65134, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4986:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65137, - "mutability": "mutable", - "name": "secret", - "nameLocation": "5015:6:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "5007:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65136, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5007:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65139, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "5035:8:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "5027:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5027:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65142, - "mutability": "mutable", - "name": "data", - "nameLocation": "5066:4:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "5049:21:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 65140, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5049:5:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 65141, - "nodeType": "ArrayTypeName", - "src": "5049:7:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65144, - "mutability": "mutable", - "name": "reverseRecord", - "nameLocation": "5081:13:99", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "5076:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65143, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5076:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4937:161:99" - }, - "returnParameters": { - "id": 65151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65150, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65183, - "src": "5140:7:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65149, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5140:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5139:9:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 65199, - "nodeType": "FunctionDefinition", - "src": "5413:134:99", - "nodes": [], - "body": { - "id": 65198, - "nodeType": "Block", - "src": "5485:62:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 65193, - "name": "LibRNSDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68113, - "src": "5516:12:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$68113_$", - "typeString": "type(library LibRNSDomain)" - } - }, - "id": 65194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5529:6:99", - "memberName": "RON_ID", - "nodeType": "MemberAccess", - "referencedDeclaration": 68076, - "src": "5516:19:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65195, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65186, - "src": "5537:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 65191, - "name": "LibRNSDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68113, - "src": "5498:12:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$68113_$", - "typeString": "type(library LibRNSDomain)" - } - }, - "id": 65192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5511:4:99", - "memberName": "toId", - "nodeType": "MemberAccess", - "referencedDeclaration": 68092, - "src": "5498:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,string memory) pure returns (uint256)" - } - }, - "id": 65196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5498:44:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 65190, - "id": 65197, - "nodeType": "Return", - "src": "5491:51:99" - } - ] - }, - "baseFunctions": [ - 67320 - ], - "documentation": { - "id": 65184, - "nodeType": "StructuredDocumentation", - "src": "5360:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "fb021939", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "computeId", - "nameLocation": "5422:9:99", - "parameters": { - "id": 65187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65186, - "mutability": "mutable", - "name": "name", - "nameLocation": "5446:4:99", - "nodeType": "VariableDeclaration", - "scope": 65199, - "src": "5432:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65185, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5432:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "5431:20:99" - }, - "returnParameters": { - "id": 65190, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65189, - "mutability": "mutable", - "name": "id", - "nameLocation": "5481:2:99", - "nodeType": "VariableDeclaration", - "scope": 65199, - "src": "5473:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5473:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5472:12:99" - }, - "scope": 65991, - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "id": 65228, - "nodeType": "FunctionDefinition", - "src": "5604:231:99", - "nodes": [], - "body": { - "id": 65227, - "nodeType": "Block", - "src": "5663:172:99", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 65207, - "name": "_committedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64920, - "src": "5673:12:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 65209, - "indexExpression": { - "id": 65208, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65202, - "src": "5686:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5673:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 65210, - "name": "_maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64893, - "src": "5700:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5673:44:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "expression": { - "id": 65212, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5721:5:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 65213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5727:9:99", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5721:15:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5673:63:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65219, - "nodeType": "IfStatement", - "src": "5669:113:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65216, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65202, - "src": "5771:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 65215, - "name": "UnexpiredCommitmentExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67204, - "src": "5745:25:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$__$", - "typeString": "function (bytes32) pure" - } - }, - "id": 65217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5745:37:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65218, - "nodeType": "RevertStatement", - "src": "5738:44:99" - } - }, - { - "expression": { - "id": 65225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 65220, - "name": "_committedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64920, - "src": "5788:12:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 65222, - "indexExpression": { - "id": 65221, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65202, - "src": "5801:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5788:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 65223, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5815:5:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 65224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5821:9:99", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5815:15:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5788:42:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65226, - "nodeType": "ExpressionStatement", - "src": "5788:42:99" - } - ] - }, - "baseFunctions": [ - 67363 - ], - "documentation": { - "id": 65200, - "nodeType": "StructuredDocumentation", - "src": "5551:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "f14fcbc8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 65205, - "kind": "modifierInvocation", - "modifierName": { - "id": 65204, - "name": "whenNotPaused", - "nameLocations": [ - "5649:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50283, - "src": "5649:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "5649:13:99" - } - ], - "name": "commit", - "nameLocation": "5613:6:99", - "parameters": { - "id": 65203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65202, - "mutability": "mutable", - "name": "commitment", - "nameLocation": "5628:10:99", - "nodeType": "VariableDeclaration", - "scope": 65228, - "src": "5620:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65201, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5620:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5619:20:99" - }, - "returnParameters": { - "id": 65206, - "nodeType": "ParameterList", - "parameters": [], - "src": "5663:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65242, - "nodeType": "FunctionDefinition", - "src": "5892:140:99", - "nodes": [], - "body": { - "id": 65241, - "nodeType": "Block", - "src": "5984:48:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 65238, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65231, - "src": "6018:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65237, - "name": "_setMinRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65777, - "src": "5990:27:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 65239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5990:37:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65240, - "nodeType": "ExpressionStatement", - "src": "5990:37:99" - } - ] - }, - "baseFunctions": [ - 67413 - ], - "documentation": { - "id": 65229, - "nodeType": "StructuredDocumentation", - "src": "5839:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "c078f16a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65234, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48562, - "src": "5964:18:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65235, - "kind": "modifierInvocation", - "modifierName": { - "id": 65233, - "name": "onlyRole", - "nameLocations": [ - "5955:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "5955:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "5955:28:99" - } - ], - "name": "setMinRegistrationDuration", - "nameLocation": "5901:26:99", - "parameters": { - "id": 65232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65231, - "mutability": "mutable", - "name": "duration", - "nameLocation": "5936:8:99", - "nodeType": "VariableDeclaration", - "scope": 65242, - "src": "5928:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5928:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5927:18:99" - }, - "returnParameters": { - "id": 65236, - "nodeType": "ParameterList", - "parameters": [], - "src": "5984:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65320, - "nodeType": "FunctionDefinition", - "src": "6089:783:99", - "nodes": [], - "body": { - "id": 65319, - "nodeType": "Block", - "src": "6312:560:99", - "nodes": [], - "statements": [ - { - "assignments": [ - 65266 - ], - "declarations": [ - { - "constant": false, - "id": 65266, - "mutability": "mutable", - "name": "id", - "nameLocation": "6326:2:99", - "nodeType": "VariableDeclaration", - "scope": 65319, - "src": "6318:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6318:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65270, - "initialValue": { - "arguments": [ - { - "id": 65268, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65245, - "src": "6341:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65267, - "name": "computeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65199, - "src": "6331:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6331:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6318:28:99" - }, - { - "condition": { - "expression": { - "expression": { - "arguments": [ - { - "id": 65273, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65266, - "src": "6378:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65271, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "6356:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6368:9:99", - "memberName": "getRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 66975, - "src": "6356:21:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Record_$66859_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct INSUnified.Record memory)" - } - }, - "id": 65274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6356:25:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$66859_memory_ptr", - "typeString": "struct INSUnified.Record memory" - } - }, - "id": 65275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6382:3:99", - "memberName": "mut", - "nodeType": "MemberAccess", - "referencedDeclaration": 66858, - "src": "6356:29:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_MutableRecord_$66852_memory_ptr", - "typeString": "struct INSUnified.MutableRecord memory" - } - }, - "id": 65276, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6386:9:99", - "memberName": "protected", - "nodeType": "MemberAccess", - "referencedDeclaration": 66851, - "src": "6356:39:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65281, - "nodeType": "IfStatement", - "src": "6352:86:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65278, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65245, - "src": "6433:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65277, - "name": "ErrRequestedForProtectedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67223, - "src": "6404:28:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 65279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6404:34:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65280, - "nodeType": "RevertStatement", - "src": "6397:41:99" - } - }, - { - "assignments": [ - 65283 - ], - "declarations": [ - { - "constant": false, - "id": 65283, - "mutability": "mutable", - "name": "commitHash", - "nameLocation": "6453:10:99", - "nodeType": "VariableDeclaration", - "scope": 65319, - "src": "6445:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65282, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6445:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 65293, - "initialValue": { - "arguments": [ - { - "id": 65285, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65245, - "src": "6498:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65286, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65247, - "src": "6517:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65287, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65249, - "src": "6540:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 65288, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65251, - "src": "6564:6:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 65289, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65253, - "src": "6588:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65290, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65256, - "src": "6610:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - { - "id": 65291, - "name": "reverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65258, - "src": "6637:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 65284, - "name": "computeCommitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65183, - "src": "6466:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_address_$_t_uint64_$_t_bytes32_$_t_address_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bool_$returns$_t_bytes32_$", - "typeString": "function (string memory,address,uint64,bytes32,address,bytes calldata[] calldata,bool) view returns (bytes32)" - } - }, - "id": 65292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [ - "6492:4:99", - "6510:5:99", - "6530:8:99", - "6556:6:99", - "6578:8:99", - "6604:4:99", - "6622:13:99" - ], - "names": [ - "name", - "owner", - "duration", - "secret", - "resolver", - "data", - "reverseRecord" - ], - "nodeType": "FunctionCall", - "src": "6466:191:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6445:212:99" - }, - { - "expression": { - "arguments": [ - { - "id": 65295, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65249, - "src": "6683:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 65296, - "name": "commitHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65283, - "src": "6693:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 65294, - "name": "_validateCommitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65760, - "src": "6663:19:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_bytes32_$returns$__$", - "typeString": "function (uint64,bytes32)" - } - }, - "id": 65297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6663:41:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65298, - "nodeType": "ExpressionStatement", - "src": "6663:41:99" - }, - { - "assignments": [ - 65300, - 65302 - ], - "declarations": [ - { - "constant": false, - "id": 65300, - "mutability": "mutable", - "name": "usdPrice", - "nameLocation": "6720:8:99", - "nodeType": "VariableDeclaration", - "scope": 65319, - "src": "6712:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6712:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65302, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "6738:8:99", - "nodeType": "VariableDeclaration", - "scope": 65319, - "src": "6730:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6730:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65307, - "initialValue": { - "arguments": [ - { - "id": 65304, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65245, - "src": "6763:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65305, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65249, - "src": "6769:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65303, - "name": "_handlePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65893, - "src": "6750:12:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint64_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (string memory,uint64) returns (uint256,uint256)" - } - }, - "id": 65306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6750:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6711:67:99" - }, - { - "expression": { - "arguments": [ - { - "id": 65309, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65245, - "src": "6794:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65310, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65247, - "src": "6800:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65311, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65249, - "src": "6807:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 65312, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65253, - "src": "6817:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65313, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65256, - "src": "6827:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - { - "id": 65314, - "name": "reverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65258, - "src": "6833:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 65315, - "name": "usdPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65300, - "src": "6848:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65316, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65302, - "src": "6858:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65308, - "name": "_register", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65956, - "src": "6784:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint64_$_t_address_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (string memory,address,uint64,address,bytes calldata[] calldata,bool,uint256,uint256)" - } - }, - "id": 65317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6784:83:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65318, - "nodeType": "ExpressionStatement", - "src": "6784:83:99" - } - ] - }, - "baseFunctions": [ - 67382 - ], - "documentation": { - "id": 65243, - "nodeType": "StructuredDocumentation", - "src": "6036:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "cb80fe2f", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 65261, - "kind": "modifierInvocation", - "modifierName": { - "id": 65260, - "name": "whenNotPaused", - "nameLocations": [ - "6285:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50283, - "src": "6285:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "6285:13:99" - }, - { - "id": 65263, - "kind": "modifierInvocation", - "modifierName": { - "id": 65262, - "name": "nonReentrant", - "nameLocations": [ - "6299:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50386, - "src": "6299:12:99" - }, - "nodeType": "ModifierInvocation", - "src": "6299:12:99" - } - ], - "name": "register", - "nameLocation": "6098:8:99", - "parameters": { - "id": 65259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65245, - "mutability": "mutable", - "name": "name", - "nameLocation": "6126:4:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6112:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65244, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6112:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65247, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6144:5:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6136:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6136:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65249, - "mutability": "mutable", - "name": "duration", - "nameLocation": "6162:8:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6155:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65248, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6155:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65251, - "mutability": "mutable", - "name": "secret", - "nameLocation": "6184:6:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6176:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6176:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65253, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "6204:8:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6196:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65252, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6196:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65256, - "mutability": "mutable", - "name": "data", - "nameLocation": "6235:4:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6218:21:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 65254, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6218:5:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 65255, - "nodeType": "ArrayTypeName", - "src": "6218:7:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65258, - "mutability": "mutable", - "name": "reverseRecord", - "nameLocation": "6250:13:99", - "nodeType": "VariableDeclaration", - "scope": 65320, - "src": "6245:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65257, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6245:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6106:161:99" - }, - "returnParameters": { - "id": 65264, - "nodeType": "ParameterList", - "parameters": [], - "src": "6312:0:99" - }, - "scope": 65991, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65394, - "nodeType": "FunctionDefinition", - "src": "6929:537:99", - "nodes": [], - "body": { - "id": 65393, - "nodeType": "Block", - "src": "7027:439:99", - "nodes": [], - "statements": [ - { - "assignments": [ - null, - 65333 - ], - "declarations": [ - null, - { - "constant": false, - "id": 65333, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "7044:8:99", - "nodeType": "VariableDeclaration", - "scope": 65393, - "src": "7036:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7036:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65338, - "initialValue": { - "arguments": [ - { - "id": 65335, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65323, - "src": "7066:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 65336, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65325, - "src": "7072:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65334, - "name": "rentPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65087, - "src": "7056:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_uint64_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (string memory,uint64) view returns (uint256,uint256)" - } - }, - "id": 65337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7056:25:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7033:48:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65339, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7091:3:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 65340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7095:5:99", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "7091:9:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65341, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65333, - "src": "7103:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7091:20:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65346, - "nodeType": "IfStatement", - "src": "7087:52:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65343, - "name": "InsufficientValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67207, - "src": "7120:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7120:19:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65345, - "nodeType": "RevertStatement", - "src": "7113:26:99" - } - }, - { - "assignments": [ - 65348 - ], - "declarations": [ - { - "constant": false, - "id": 65348, - "mutability": "mutable", - "name": "remainAmount", - "nameLocation": "7153:12:99", - "nodeType": "VariableDeclaration", - "scope": 65393, - "src": "7145:20:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65347, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7145:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65353, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65349, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7168:3:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 65350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7172:5:99", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "7168:9:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 65351, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65333, - "src": "7180:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7168:20:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7145:43:99" - }, - { - "assignments": [ - 65355 - ], - "declarations": [ - { - "constant": false, - "id": 65355, - "mutability": "mutable", - "name": "id", - "nameLocation": "7203:2:99", - "nodeType": "VariableDeclaration", - "scope": 65393, - "src": "7195:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65354, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7195:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65359, - "initialValue": { - "arguments": [ - { - "id": 65357, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65323, - "src": "7218:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - ], - "id": 65356, - "name": "computeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65199, - "src": "7208:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7208:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7195:28:99" - }, - { - "assignments": [ - 65361 - ], - "declarations": [ - { - "constant": false, - "id": 65361, - "mutability": "mutable", - "name": "expiryTime", - "nameLocation": "7236:10:99", - "nodeType": "VariableDeclaration", - "scope": 65393, - "src": "7229:17:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65360, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7229:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "id": 65367, - "initialValue": { - "arguments": [ - { - "id": 65364, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65355, - "src": "7267:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65365, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65325, - "src": "7271:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "id": 65362, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "7249:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7261:5:99", - "memberName": "renew", - "nodeType": "MemberAccess", - "referencedDeclaration": 67028, - "src": "7249:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint256,uint64) external returns (uint64)" - } - }, - "id": 65366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7249:31:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7229:51:99" - }, - { - "eventCall": { - "arguments": [ - { - "id": 65369, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65323, - "src": "7303:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 65370, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65355, - "src": "7309:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65371, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65333, - "src": "7313:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65372, - "name": "expiryTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65361, - "src": "7323:10:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65368, - "name": "NameRenewed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67287, - "src": "7291:11:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint64_$returns$__$", - "typeString": "function (string memory,uint256,uint256,uint64)" - } - }, - "id": 65373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7291:43:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65374, - "nodeType": "EmitStatement", - "src": "7286:48:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65375, - "name": "remainAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65348, - "src": "7345:12:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 65376, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7361:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7345:17:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65389, - "nodeType": "IfStatement", - "src": "7341:90:99", - "trueBody": { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65383, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "7403:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7403:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7395:8:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 65381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7395:8:99", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 65385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7395:21:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 65386, - "name": "remainAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65348, - "src": "7418:12:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65378, - "name": "RONTransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69515, - "src": "7364:17:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$69515_$", - "typeString": "type(library RONTransferHelper)" - } - }, - "id": 65380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7382:12:99", - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 69490, - "src": "7364:30:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 65387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7364:67:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65388, - "nodeType": "ExpressionStatement", - "src": "7364:67:99" - } - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65390, - "name": "_transferRONToTreasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65837, - "src": "7437:22:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 65391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7437:24:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65392, - "nodeType": "ExpressionStatement", - "src": "7437:24:99" - } - ] - }, - "baseFunctions": [ - 67390 - ], - "documentation": { - "id": 65321, - "nodeType": "StructuredDocumentation", - "src": "6876:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "5a705169", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 65328, - "kind": "modifierInvocation", - "modifierName": { - "id": 65327, - "name": "whenNotPaused", - "nameLocations": [ - "7000:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50283, - "src": "7000:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "7000:13:99" - }, - { - "id": 65330, - "kind": "modifierInvocation", - "modifierName": { - "id": 65329, - "name": "nonReentrant", - "nameLocations": [ - "7014:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50386, - "src": "7014:12:99" - }, - "nodeType": "ModifierInvocation", - "src": "7014:12:99" - } - ], - "name": "renew", - "nameLocation": "6938:5:99", - "parameters": { - "id": 65326, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65323, - "mutability": "mutable", - "name": "name", - "nameLocation": "6960:4:99", - "nodeType": "VariableDeclaration", - "scope": 65394, - "src": "6944:20:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65322, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6944:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65325, - "mutability": "mutable", - "name": "duration", - "nameLocation": "6973:8:99", - "nodeType": "VariableDeclaration", - "scope": 65394, - "src": "6966:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65324, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6966:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "6943:39:99" - }, - "returnParameters": { - "id": 65331, - "nodeType": "ParameterList", - "parameters": [], - "src": "7027:0:99" - }, - "scope": 65991, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65484, - "nodeType": "FunctionDefinition", - "src": "7523:732:99", - "nodes": [], - "body": { - "id": 65483, - "nodeType": "Block", - "src": "7759:496:99", - "nodes": [], - "statements": [ - { - "condition": { - "id": 65421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7769:16:99", - "subExpression": { - "arguments": [ - { - "id": 65419, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "7780:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65418, - "name": "available", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65128, - "src": "7770:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view returns (bool)" - } - }, - "id": 65420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7770:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65426, - "nodeType": "IfStatement", - "src": "7765:51:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65423, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "7811:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65422, - "name": "NameNotAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67191, - "src": "7794:16:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 65424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7794:22:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65425, - "nodeType": "RevertStatement", - "src": "7787:29:99" - } - }, - { - "assignments": [ - 65428 - ], - "declarations": [ - { - "constant": false, - "id": 65428, - "mutability": "mutable", - "name": "id", - "nameLocation": "7830:2:99", - "nodeType": "VariableDeclaration", - "scope": 65483, - "src": "7822:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7822:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65432, - "initialValue": { - "arguments": [ - { - "id": 65430, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "7845:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65429, - "name": "computeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65199, - "src": "7835:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) pure returns (uint256)" - } - }, - "id": 65431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7835:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7822:28:99" - }, - { - "assignments": [ - 65434 - ], - "declarations": [ - { - "constant": false, - "id": 65434, - "mutability": "mutable", - "name": "protected", - "nameLocation": "7861:9:99", - "nodeType": "VariableDeclaration", - "scope": 65483, - "src": "7856:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65433, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7856:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 65441, - "initialValue": { - "expression": { - "expression": { - "arguments": [ - { - "id": 65437, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65428, - "src": "7895:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65435, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "7873:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7885:9:99", - "memberName": "getRecord", - "nodeType": "MemberAccess", - "referencedDeclaration": 66975, - "src": "7873:21:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Record_$66859_memory_ptr_$", - "typeString": "function (uint256) view external returns (struct INSUnified.Record memory)" - } - }, - "id": 65438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7873:25:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Record_$66859_memory_ptr", - "typeString": "struct INSUnified.Record memory" - } - }, - "id": 65439, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7899:3:99", - "memberName": "mut", - "nodeType": "MemberAccess", - "referencedDeclaration": 66858, - "src": "7873:29:99", - "typeDescriptions": { - "typeIdentifier": "t_struct$_MutableRecord_$66852_memory_ptr", - "typeString": "struct INSUnified.MutableRecord memory" - } - }, - "id": 65440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7903:9:99", - "memberName": "protected", - "nodeType": "MemberAccess", - "referencedDeclaration": 66851, - "src": "7873:39:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7856:56:99" - }, - { - "assignments": [ - 65443 - ], - "declarations": [ - { - "constant": false, - "id": 65443, - "mutability": "mutable", - "name": "whitelisted", - "nameLocation": "7923:11:99", - "nodeType": "VariableDeclaration", - "scope": 65483, - "src": "7918:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65442, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7918:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 65449, - "initialValue": { - "baseExpression": { - "baseExpression": { - "id": 65444, - "name": "_protectedNamesWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64927, - "src": "7937:26:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 65446, - "indexExpression": { - "id": 65445, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65428, - "src": "7964:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:30:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 65448, - "indexExpression": { - "id": 65447, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65399, - "src": "7968:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:37:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7918:56:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 65454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7984:10:99", - "subExpression": { - "id": 65450, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65434, - "src": "7985:9:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "id": 65453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7998:12:99", - "subExpression": { - "id": 65452, - "name": "whitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65443, - "src": "7999:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7984:26:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65462, - "nodeType": "IfStatement", - "src": "7980:107:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65456, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "8051:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65457, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65399, - "src": "8057:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65458, - "name": "protected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65434, - "src": "8064:9:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 65459, - "name": "whitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65443, - "src": "8075:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 65455, - "name": "ErrInvalidRegisterProtectedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67234, - "src": "8019:31:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$_t_address_$_t_bool_$_t_bool_$returns$__$", - "typeString": "function (string memory,address,bool,bool) pure" - } - }, - "id": 65460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8019:68:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65461, - "nodeType": "RevertStatement", - "src": "8012:75:99" - } - }, - { - "assignments": [ - 65464, - 65466 - ], - "declarations": [ - { - "constant": false, - "id": 65464, - "mutability": "mutable", - "name": "usdPrice", - "nameLocation": "8103:8:99", - "nodeType": "VariableDeclaration", - "scope": 65483, - "src": "8095:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65463, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8095:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65466, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "8121:8:99", - "nodeType": "VariableDeclaration", - "scope": 65483, - "src": "8113:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8113:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65471, - "initialValue": { - "arguments": [ - { - "id": 65468, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "8146:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65469, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65401, - "src": "8152:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65467, - "name": "_handlePrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65893, - "src": "8133:12:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint64_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (string memory,uint64) returns (uint256,uint256)" - } - }, - "id": 65470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8133:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8094:67:99" - }, - { - "expression": { - "arguments": [ - { - "id": 65473, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "8177:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65474, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65399, - "src": "8183:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65475, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65401, - "src": "8190:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 65476, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65403, - "src": "8200:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65477, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65406, - "src": "8210:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - { - "id": 65478, - "name": "reverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65408, - "src": "8216:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 65479, - "name": "usdPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65464, - "src": "8231:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65480, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65466, - "src": "8241:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65472, - "name": "_register", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65956, - "src": "8167:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint64_$_t_address_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (string memory,address,uint64,address,bytes calldata[] calldata,bool,uint256,uint256)" - } - }, - "id": 65481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8167:83:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65482, - "nodeType": "ExpressionStatement", - "src": "8167:83:99" - } - ] - }, - "baseFunctions": [ - 67407 - ], - "documentation": { - "id": 65395, - "nodeType": "StructuredDocumentation", - "src": "7470:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "8ca3d183", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 65411, - "kind": "modifierInvocation", - "modifierName": { - "id": 65410, - "name": "whenNotPaused", - "nameLocations": [ - "7712:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50283, - "src": "7712:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "7712:13:99" - }, - { - "id": 65413, - "kind": "modifierInvocation", - "modifierName": { - "id": 65412, - "name": "nonReentrant", - "nameLocations": [ - "7726:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50386, - "src": "7726:12:99" - }, - "nodeType": "ModifierInvocation", - "src": "7726:12:99" - }, - { - "arguments": [ - { - "id": 65415, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65397, - "src": "7753:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 65416, - "kind": "modifierInvocation", - "modifierName": { - "id": 65414, - "name": "onlyAvailable", - "nameLocations": [ - "7739:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 64937, - "src": "7739:13:99" - }, - "nodeType": "ModifierInvocation", - "src": "7739:19:99" - } - ], - "name": "registerProtectedName", - "nameLocation": "7532:21:99", - "parameters": { - "id": 65409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65397, - "mutability": "mutable", - "name": "name", - "nameLocation": "7573:4:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7559:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65396, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7559:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65399, - "mutability": "mutable", - "name": "owner", - "nameLocation": "7591:5:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7583:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7583:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65401, - "mutability": "mutable", - "name": "duration", - "nameLocation": "7609:8:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7602:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65400, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7602:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65403, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "7631:8:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7623:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7623:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65406, - "mutability": "mutable", - "name": "data", - "nameLocation": "7662:4:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7645:21:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 65404, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7645:5:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 65405, - "nodeType": "ArrayTypeName", - "src": "7645:7:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65408, - "mutability": "mutable", - "name": "reverseRecord", - "nameLocation": "7677:13:99", - "nodeType": "VariableDeclaration", - "scope": 65484, - "src": "7672:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65407, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7672:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7553:141:99" - }, - "returnParameters": { - "id": 65417, - "nodeType": "ParameterList", - "parameters": [], - "src": "7759:0:99" - }, - "scope": 65991, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65549, - "nodeType": "FunctionDefinition", - "src": "8312:475:99", - "nodes": [], - "body": { - "id": 65548, - "nodeType": "Block", - "src": "8456:331:99", - "nodes": [], - "statements": [ - { - "assignments": [ - 65500 - ], - "declarations": [ - { - "constant": false, - "id": 65500, - "mutability": "mutable", - "name": "length", - "nameLocation": "8470:6:99", - "nodeType": "VariableDeclaration", - "scope": 65548, - "src": "8462:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8462:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65503, - "initialValue": { - "expression": { - "id": 65501, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65488, - "src": "8479:3:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 65502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8483:6:99", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "8479:10:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8462:27:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 65511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65504, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65500, - "src": "8499:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 65505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8509:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8499:11:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65507, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65500, - "src": "8514:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 65508, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65491, - "src": "8524:6:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 65509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8531:6:99", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "8524:13:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8514:23:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8499:38:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65515, - "nodeType": "IfStatement", - "src": "8495:71:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65512, - "name": "InvalidArrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67237, - "src": "8546:18:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8546:20:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65514, - "nodeType": "RevertStatement", - "src": "8539:27:99" - } - }, - { - "body": { - "id": 65538, - "nodeType": "Block", - "src": "8602:109:99", - "statements": [ - { - "expression": { - "id": 65532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 65522, - "name": "_protectedNamesWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64927, - "src": "8610:26:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 65529, - "indexExpression": { - "baseExpression": { - "id": 65523, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65488, - "src": "8637:3:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 65525, - "indexExpression": { - "id": 65524, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65517, - "src": "8641:1:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8637:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8610:34:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 65530, - "indexExpression": { - "baseExpression": { - "id": 65526, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65491, - "src": "8645:6:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 65528, - "indexExpression": { - "id": 65527, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65517, - "src": "8652:1:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8645:9:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8610:45:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65531, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65493, - "src": "8658:6:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8610:54:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65533, - "nodeType": "ExpressionStatement", - "src": "8610:54:99" - }, - { - "id": 65537, - "nodeType": "UncheckedBlock", - "src": "8673:32:99", - "statements": [ - { - "expression": { - "id": 65535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "8693:3:99", - "subExpression": { - "id": 65534, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65517, - "src": "8695:1:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65536, - "nodeType": "ExpressionStatement", - "src": "8693:3:99" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65519, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65517, - "src": "8589:1:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65520, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65500, - "src": "8593:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8589:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65539, - "initializationExpression": { - "assignments": [ - 65517 - ], - "declarations": [ - { - "constant": false, - "id": 65517, - "mutability": "mutable", - "name": "i", - "nameLocation": "8586:1:99", - "nodeType": "VariableDeclaration", - "scope": 65539, - "src": "8578:9:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8578:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65518, - "nodeType": "VariableDeclarationStatement", - "src": "8578:9:99" - }, - "nodeType": "ForStatement", - "src": "8573:138:99" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65541, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "8748:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8748:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65543, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65488, - "src": "8762:3:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 65544, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65491, - "src": "8767:6:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "id": 65545, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65493, - "src": "8775:6:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 65540, - "name": "ProtectedNamesWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67300, - "src": "8722:25:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (address,uint256[] memory,address[] memory,bool)" - } - }, - "id": 65546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8722:60:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65547, - "nodeType": "EmitStatement", - "src": "8717:65:99" - } - ] - }, - "baseFunctions": [ - 67433 - ], - "documentation": { - "id": 65485, - "nodeType": "StructuredDocumentation", - "src": "8259:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "6df99353", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65496, - "name": "OPERATOR_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64882, - "src": "8439:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65497, - "kind": "modifierInvocation", - "modifierName": { - "id": 65495, - "name": "onlyRole", - "nameLocations": [ - "8430:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "8430:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "8430:23:99" - } - ], - "name": "bulkWhitelistProtectedNames", - "nameLocation": "8321:27:99", - "parameters": { - "id": 65494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65488, - "mutability": "mutable", - "name": "ids", - "nameLocation": "8368:3:99", - "nodeType": "VariableDeclaration", - "scope": 65549, - "src": "8349:22:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 65486, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8349:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65487, - "nodeType": "ArrayTypeName", - "src": "8349:9:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65491, - "mutability": "mutable", - "name": "owners", - "nameLocation": "8392:6:99", - "nodeType": "VariableDeclaration", - "scope": 65549, - "src": "8373:25:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 65489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8373:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 65490, - "nodeType": "ArrayTypeName", - "src": "8373:9:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65493, - "mutability": "mutable", - "name": "status", - "nameLocation": "8405:6:99", - "nodeType": "VariableDeclaration", - "scope": 65549, - "src": "8400:11:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65492, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8400:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8348:64:99" - }, - "returnParameters": { - "id": 65498, - "nodeType": "ParameterList", - "parameters": [], - "src": "8456:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65566, - "nodeType": "FunctionDefinition", - "src": "8844:159:99", - "nodes": [], - "body": { - "id": 65565, - "nodeType": "Block", - "src": "8948:55:99", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 65559, - "name": "_protectedNamesWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64927, - "src": "8961:26:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 65561, - "indexExpression": { - "id": 65560, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65552, - "src": "8988:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8961:30:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 65563, - "indexExpression": { - "id": 65562, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65554, - "src": "8992:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8961:37:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 65558, - "id": 65564, - "nodeType": "Return", - "src": "8954:44:99" - } - ] - }, - "baseFunctions": [ - 67443 - ], - "documentation": { - "id": 65550, - "nodeType": "StructuredDocumentation", - "src": "8791:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "3b6c2ea3", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getWhitelistProtectedNameStatus", - "nameLocation": "8853:31:99", - "parameters": { - "id": 65555, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65552, - "mutability": "mutable", - "name": "id", - "nameLocation": "8893:2:99", - "nodeType": "VariableDeclaration", - "scope": 65566, - "src": "8885:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8885:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65554, - "mutability": "mutable", - "name": "owner", - "nameLocation": "8905:5:99", - "nodeType": "VariableDeclaration", - "scope": 65566, - "src": "8897:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65553, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8897:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8884:27:99" - }, - "returnParameters": { - "id": 65558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65557, - "mutability": "mutable", - "name": "status", - "nameLocation": "8940:6:99", - "nodeType": "VariableDeclaration", - "scope": 65566, - "src": "8935:11:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65556, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8935:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8934:13:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65580, - "nodeType": "FunctionDefinition", - "src": "9060:108:99", - "nodes": [], - "body": { - "id": 65579, - "nodeType": "Block", - "src": "9141:27:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65575, - "name": "_treasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64899, - "src": "9147:9:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65576, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65569, - "src": "9159:4:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9147:16:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 65578, - "nodeType": "ExpressionStatement", - "src": "9147:16:99" - } - ] - }, - "baseFunctions": [ - 67449 - ], - "documentation": { - "id": 65567, - "nodeType": "StructuredDocumentation", - "src": "9007:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "f0f44260", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65572, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48562, - "src": "9121:18:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65573, - "kind": "modifierInvocation", - "modifierName": { - "id": 65571, - "name": "onlyRole", - "nameLocations": [ - "9112:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "9112:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "9112:28:99" - } - ], - "name": "setTreasury", - "nameLocation": "9069:11:99", - "parameters": { - "id": 65570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65569, - "mutability": "mutable", - "name": "addr", - "nameLocation": "9097:4:99", - "nodeType": "VariableDeclaration", - "scope": 65580, - "src": "9081:20:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 65568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9081:15:99", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "9080:22:99" - }, - "returnParameters": { - "id": 65574, - "nodeType": "ParameterList", - "parameters": [], - "src": "9141:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65597, - "nodeType": "FunctionDefinition", - "src": "9225:180:99", - "nodes": [], - "body": { - "id": 65596, - "nodeType": "Block", - "src": "9341:64:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 65592, - "name": "minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65583, - "src": "9365:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65593, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65585, - "src": "9383:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65591, - "name": "_setCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65636, - "src": "9347:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 65594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9347:53:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65595, - "nodeType": "ExpressionStatement", - "src": "9347:53:99" - } - ] - }, - "baseFunctions": [ - 67421 - ], - "documentation": { - "id": 65581, - "nodeType": "StructuredDocumentation", - "src": "9172:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "e4214b46", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65588, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48562, - "src": "9321:18:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65589, - "kind": "modifierInvocation", - "modifierName": { - "id": 65587, - "name": "onlyRole", - "nameLocations": [ - "9312:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "9312:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "9312:28:99" - } - ], - "name": "setCommitmentAge", - "nameLocation": "9234:16:99", - "parameters": { - "id": 65586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65583, - "mutability": "mutable", - "name": "minCommitmentAge", - "nameLocation": "9259:16:99", - "nodeType": "VariableDeclaration", - "scope": 65597, - "src": "9251:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9251:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65585, - "mutability": "mutable", - "name": "maxCommitmentAge", - "nameLocation": "9285:16:99", - "nodeType": "VariableDeclaration", - "scope": 65597, - "src": "9277:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65584, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9277:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9250:52:99" - }, - "returnParameters": { - "id": 65590, - "nodeType": "ParameterList", - "parameters": [], - "src": "9341:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65636, - "nodeType": "FunctionDefinition", - "src": "9897:417:99", - "nodes": [], - "body": { - "id": 65635, - "nodeType": "Block", - "src": "9985:329:99", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65605, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65602, - "src": "9995:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 65606, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "10014:5:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 65607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10020:9:99", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "10014:15:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9995:34:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65612, - "nodeType": "IfStatement", - "src": "9991:72:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65609, - "name": "MaxCommitmentAgeTooHigh", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67218, - "src": "10038:23:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10038:25:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65611, - "nodeType": "RevertStatement", - "src": "10031:32:99" - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65613, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65602, - "src": "10073:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 65614, - "name": "minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65600, - "src": "10093:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10073:36:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65619, - "nodeType": "IfStatement", - "src": "10069:73:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65616, - "name": "MaxCommitmentAgeTooLow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67215, - "src": "10118:22:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10118:24:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65618, - "nodeType": "RevertStatement", - "src": "10111:31:99" - } - }, - { - "expression": { - "id": 65622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65620, - "name": "_minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64890, - "src": "10149:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65621, - "name": "minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65600, - "src": "10169:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10149:36:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65623, - "nodeType": "ExpressionStatement", - "src": "10149:36:99" - }, - { - "expression": { - "id": 65626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65624, - "name": "_maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64893, - "src": "10191:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65625, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65602, - "src": "10211:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10191:36:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65627, - "nodeType": "ExpressionStatement", - "src": "10191:36:99" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65629, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "10260:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10260:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65631, - "name": "minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65600, - "src": "10274:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65632, - "name": "maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65602, - "src": "10292:16:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65628, - "name": "CommitmentAgeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67261, - "src": "10239:20:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 65633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10239:70:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65634, - "nodeType": "EmitStatement", - "src": "10234:75:99" - } - ] - }, - "documentation": { - "id": 65598, - "nodeType": "StructuredDocumentation", - "src": "9409:485:99", - "text": " @dev Internal function to update the commitment age range.\n Requirements:\n - The `maxCommitmentAge` must be less than or equal to the current block timestamp.\n - The `maxCommitmentAge` must be greater than the `minCommitmentAge`.\n Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\n @param minCommitmentAge The minimum commitment age in seconds.\n @param maxCommitmentAge The maximum commitment age in seconds." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setCommitmentAge", - "nameLocation": "9906:17:99", - "parameters": { - "id": 65603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65600, - "mutability": "mutable", - "name": "minCommitmentAge", - "nameLocation": "9932:16:99", - "nodeType": "VariableDeclaration", - "scope": 65636, - "src": "9924:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9924:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65602, - "mutability": "mutable", - "name": "maxCommitmentAge", - "nameLocation": "9958:16:99", - "nodeType": "VariableDeclaration", - "scope": 65636, - "src": "9950:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9950:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9923:52:99" - }, - "returnParameters": { - "id": 65604, - "nodeType": "ParameterList", - "parameters": [], - "src": "9985:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65651, - "nodeType": "FunctionDefinition", - "src": "10371:129:99", - "nodes": [], - "body": { - "id": 65650, - "nodeType": "Block", - "src": "10461:39:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 65647, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65640, - "src": "10483:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - ], - "id": 65646, - "name": "_setPriceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65974, - "src": "10467:15:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_INSDomainPrice_$66670_$returns$__$", - "typeString": "function (contract INSDomainPrice)" - } - }, - "id": 65648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10467:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65649, - "nodeType": "ExpressionStatement", - "src": "10467:28:99" - } - ] - }, - "baseFunctions": [ - 67456 - ], - "documentation": { - "id": 65637, - "nodeType": "StructuredDocumentation", - "src": "10318:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "530e784f", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 65643, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48562, - "src": "10441:18:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 65644, - "kind": "modifierInvocation", - "modifierName": { - "id": 65642, - "name": "onlyRole", - "nameLocations": [ - "10432:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48573, - "src": "10432:8:99" - }, - "nodeType": "ModifierInvocation", - "src": "10432:28:99" - } - ], - "name": "setPriceOracle", - "nameLocation": "10380:14:99", - "parameters": { - "id": 65641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65640, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "10410:11:99", - "nodeType": "VariableDeclaration", - "scope": 65651, - "src": "10395:26:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - }, - "typeName": { - "id": 65639, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65638, - "name": "INSDomainPrice", - "nameLocations": [ - "10395:14:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66670, - "src": "10395:14:99" - }, - "referencedDeclaration": 66670, - "src": "10395:14:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "visibility": "internal" - } - ], - "src": "10394:28:99" - }, - "returnParameters": { - "id": 65645, - "nodeType": "ParameterList", - "parameters": [], - "src": "10461:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 65660, - "nodeType": "FunctionDefinition", - "src": "10557:82:99", - "nodes": [], - "body": { - "id": 65659, - "nodeType": "Block", - "src": "10612:27:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65657, - "name": "_treasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64899, - "src": "10625:9:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 65656, - "id": 65658, - "nodeType": "Return", - "src": "10618:16:99" - } - ] - }, - "baseFunctions": [ - 67462 - ], - "documentation": { - "id": 65652, - "nodeType": "StructuredDocumentation", - "src": "10504:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "3b19e84a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTreasury", - "nameLocation": "10566:11:99", - "parameters": { - "id": 65653, - "nodeType": "ParameterList", - "parameters": [], - "src": "10577:2:99" - }, - "returnParameters": { - "id": 65656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65655, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65660, - "src": "10603:7:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10603:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "10602:9:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65673, - "nodeType": "FunctionDefinition", - "src": "10696:164:99", - "nodes": [], - "body": { - "id": 65672, - "nodeType": "Block", - "src": "10804:56:99", - "nodes": [], - "statements": [ - { - "expression": { - "components": [ - { - "id": 65668, - "name": "_minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64890, - "src": "10818:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65669, - "name": "_maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64893, - "src": "10837:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 65670, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10817:38:99", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 65667, - "id": 65671, - "nodeType": "Return", - "src": "10810:45:99" - } - ] - }, - "baseFunctions": [ - 67502 - ], - "documentation": { - "id": 65661, - "nodeType": "StructuredDocumentation", - "src": "10643:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "1321889f", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCommitmentAgeRange", - "nameLocation": "10705:21:99", - "parameters": { - "id": 65662, - "nodeType": "ParameterList", - "parameters": [], - "src": "10726:2:99" - }, - "returnParameters": { - "id": 65667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65664, - "mutability": "mutable", - "name": "minCommitmentAge", - "nameLocation": "10760:16:99", - "nodeType": "VariableDeclaration", - "scope": 65673, - "src": "10752:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10752:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65666, - "mutability": "mutable", - "name": "maxCommitmentAge", - "nameLocation": "10786:16:99", - "nodeType": "VariableDeclaration", - "scope": 65673, - "src": "10778:24:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10778:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10751:52:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65683, - "nodeType": "FunctionDefinition", - "src": "10917:89:99", - "nodes": [], - "body": { - "id": 65682, - "nodeType": "Block", - "src": "10977:29:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65680, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "10990:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "functionReturnParameters": 65679, - "id": 65681, - "nodeType": "Return", - "src": "10983:18:99" - } - ] - }, - "baseFunctions": [ - 67509 - ], - "documentation": { - "id": 65674, - "nodeType": "StructuredDocumentation", - "src": "10864:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "8c843314", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getRNSUnified", - "nameLocation": "10926:13:99", - "parameters": { - "id": 65675, - "nodeType": "ParameterList", - "parameters": [], - "src": "10939:2:99" - }, - "returnParameters": { - "id": 65679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65678, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65683, - "src": "10965:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - }, - "typeName": { - "id": 65677, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65676, - "name": "INSUnified", - "nameLocations": [ - "10965:10:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67046, - "src": "10965:10:99" - }, - "referencedDeclaration": 67046, - "src": "10965:10:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "visibility": "internal" - } - ], - "src": "10964:12:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65693, - "nodeType": "FunctionDefinition", - "src": "11063:95:99", - "nodes": [], - "body": { - "id": 65692, - "nodeType": "Block", - "src": "11128:30:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65690, - "name": "_priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64911, - "src": "11141:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "functionReturnParameters": 65689, - "id": 65691, - "nodeType": "Return", - "src": "11134:19:99" - } - ] - }, - "baseFunctions": [ - 67516 - ], - "documentation": { - "id": 65684, - "nodeType": "StructuredDocumentation", - "src": "11010:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "fca513a8", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "11072:14:99", - "parameters": { - "id": 65685, - "nodeType": "ParameterList", - "parameters": [], - "src": "11086:2:99" - }, - "returnParameters": { - "id": 65689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65688, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65693, - "src": "11112:14:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - }, - "typeName": { - "id": 65687, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65686, - "name": "INSDomainPrice", - "nameLocations": [ - "11112:14:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66670, - "src": "11112:14:99" - }, - "referencedDeclaration": 66670, - "src": "11112:14:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "visibility": "internal" - } - ], - "src": "11111:16:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65703, - "nodeType": "FunctionDefinition", - "src": "11215:93:99", - "nodes": [], - "body": { - "id": 65702, - "nodeType": "Block", - "src": "11278:30:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65700, - "name": "_nameChecker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64907, - "src": "11291:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "functionReturnParameters": 65699, - "id": 65701, - "nodeType": "Return", - "src": "11284:19:99" - } - ] - }, - "baseFunctions": [ - 67523 - ], - "documentation": { - "id": 65694, - "nodeType": "StructuredDocumentation", - "src": "11162:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "224b04de", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getNameChecker", - "nameLocation": "11224:14:99", - "parameters": { - "id": 65695, - "nodeType": "ParameterList", - "parameters": [], - "src": "11238:2:99" - }, - "returnParameters": { - "id": 65699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65698, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65703, - "src": "11264:12:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - }, - "typeName": { - "id": 65697, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65696, - "name": "INameChecker", - "nameLocations": [ - "11264:12:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67165, - "src": "11264:12:99" - }, - "referencedDeclaration": 67165, - "src": "11264:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INameChecker_$67165", - "typeString": "contract INameChecker" - } - }, - "visibility": "internal" - } - ], - "src": "11263:14:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65713, - "nodeType": "FunctionDefinition", - "src": "11365:110:99", - "nodes": [], - "body": { - "id": 65712, - "nodeType": "Block", - "src": "11440:35:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65710, - "name": "_reverseRegistrar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64915, - "src": "11453:17:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "functionReturnParameters": 65709, - "id": 65711, - "nodeType": "Return", - "src": "11446:24:99" - } - ] - }, - "baseFunctions": [ - 67530 - ], - "documentation": { - "id": 65704, - "nodeType": "StructuredDocumentation", - "src": "11312:50:99", - "text": " @inheritdoc IRONRegistrarController" - }, - "functionSelector": "237a78fb", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getReverseRegistrar", - "nameLocation": "11374:19:99", - "parameters": { - "id": 65705, - "nodeType": "ParameterList", - "parameters": [], - "src": "11393:2:99" - }, - "returnParameters": { - "id": 65709, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65708, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 65713, - "src": "11419:19:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - }, - "typeName": { - "id": 65707, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65706, - "name": "INSReverseRegistrar", - "nameLocations": [ - "11419:19:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66789, - "src": "11419:19:99" - }, - "referencedDeclaration": 66789, - "src": "11419:19:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "visibility": "internal" - } - ], - "src": "11418:21:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 65760, - "nodeType": "FunctionDefinition", - "src": "11677:434:99", - "nodes": [], - "body": { - "id": 65759, - "nodeType": "Block", - "src": "11752:359:99", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65721, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65716, - "src": "11762:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65722, - "name": "_minRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64896, - "src": "11773:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11762:35:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65728, - "nodeType": "IfStatement", - "src": "11758:74:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65725, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65716, - "src": "11823:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65724, - "name": "DurationTooShort", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67196, - "src": "11806:16:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint64_$returns$__$", - "typeString": "function (uint64) pure" - } - }, - "id": 65726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11806:26:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65727, - "nodeType": "RevertStatement", - "src": "11799:33:99" - } - }, - { - "assignments": [ - 65730 - ], - "declarations": [ - { - "constant": false, - "id": 65730, - "mutability": "mutable", - "name": "passedDuration", - "nameLocation": "11847:14:99", - "nodeType": "VariableDeclaration", - "scope": 65759, - "src": "11839:22:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11839:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65737, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65731, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "11864:5:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 65732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11870:9:99", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "11864:15:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "baseExpression": { - "id": 65733, - "name": "_committedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64920, - "src": "11882:12:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 65735, - "indexExpression": { - "id": 65734, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65718, - "src": "11895:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11882:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11864:42:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11839:67:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65738, - "name": "passedDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65730, - "src": "11916:14:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65739, - "name": "_minCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64890, - "src": "11933:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11916:34:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65745, - "nodeType": "IfStatement", - "src": "11912:75:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65742, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65718, - "src": "11976:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 65741, - "name": "CommitmentTooNew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67181, - "src": "11959:16:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$__$", - "typeString": "function (bytes32) pure" - } - }, - "id": 65743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11959:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65744, - "nodeType": "RevertStatement", - "src": "11952:35:99" - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65746, - "name": "_maxCommitmentAge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64893, - "src": "11997:17:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65747, - "name": "passedDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65730, - "src": "12017:14:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11997:34:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65753, - "nodeType": "IfStatement", - "src": "11993:75:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65750, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65718, - "src": "12057:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 65749, - "name": "CommitmentTooOld", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67186, - "src": "12040:16:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$__$", - "typeString": "function (bytes32) pure" - } - }, - "id": 65751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12040:28:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65752, - "nodeType": "RevertStatement", - "src": "12033:35:99" - } - }, - { - "expression": { - "id": 65757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "12075:31:99", - "subExpression": { - "baseExpression": { - "id": 65754, - "name": "_committedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64920, - "src": "12082:12:99", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 65756, - "indexExpression": { - "id": 65755, - "name": "commitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65718, - "src": "12095:10:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12082:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65758, - "nodeType": "ExpressionStatement", - "src": "12075:31:99" - } - ] - }, - "documentation": { - "id": 65714, - "nodeType": "StructuredDocumentation", - "src": "11479:195:99", - "text": " @dev Validates commitment.\n Requirements:\n - The duration must larger than or equal to minimum registration duration.\n - The passed duration must in a valid range." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateCommitment", - "nameLocation": "11686:19:99", - "parameters": { - "id": 65719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65716, - "mutability": "mutable", - "name": "duration", - "nameLocation": "11713:8:99", - "nodeType": "VariableDeclaration", - "scope": 65760, - "src": "11706:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65715, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11706:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65718, - "mutability": "mutable", - "name": "commitment", - "nameLocation": "11731:10:99", - "nodeType": "VariableDeclaration", - "scope": 65760, - "src": "11723:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 65717, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11723:7:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "11705:37:99" - }, - "returnParameters": { - "id": 65720, - "nodeType": "ParameterList", - "parameters": [], - "src": "11752:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65777, - "nodeType": "FunctionDefinition", - "src": "12288:175:99", - "nodes": [], - "body": { - "id": 65776, - "nodeType": "Block", - "src": "12352:111:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65766, - "name": "_minRegistrationDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64896, - "src": "12358:24:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65767, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65763, - "src": "12385:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12358:35:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65769, - "nodeType": "ExpressionStatement", - "src": "12358:35:99" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65771, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "12435:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12435:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65773, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65763, - "src": "12449:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65770, - "name": "MinRegistrationDurationUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67244, - "src": "12404:30:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 65774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12404:54:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65775, - "nodeType": "EmitStatement", - "src": "12399:59:99" - } - ] - }, - "documentation": { - "id": 65761, - "nodeType": "StructuredDocumentation", - "src": "12115:170:99", - "text": " @dev Sets minimum registration duration.\n Emits a {MinRegistrationDurationUpdated} event indicating the successful update of the registration duration." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setMinRegistrationDuration", - "nameLocation": "12297:27:99", - "parameters": { - "id": 65764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65763, - "mutability": "mutable", - "name": "duration", - "nameLocation": "12333:8:99", - "nodeType": "VariableDeclaration", - "scope": 65777, - "src": "12325:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12325:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12324:18:99" - }, - "returnParameters": { - "id": 65765, - "nodeType": "ParameterList", - "parameters": [], - "src": "12352:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65800, - "nodeType": "FunctionDefinition", - "src": "12531:175:99", - "nodes": [], - "body": { - "id": 65799, - "nodeType": "Block", - "src": "12621:85:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 65794, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65782, - "src": "12691:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 65793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12683:7:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 65792, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12683:7:99", - "typeDescriptions": {} - } - }, - "id": 65795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12683:11:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 65796, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65785, - "src": "12696:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - ], - "expression": { - "arguments": [ - { - "id": 65789, - "name": "resolverAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65780, - "src": "12643:15:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65788, - "name": "IPublicResolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67887, - "src": "12627:15:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPublicResolver_$67887_$", - "typeString": "type(contract IPublicResolver)" - } - }, - "id": 65790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12627:32:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPublicResolver_$67887", - "typeString": "contract IPublicResolver" - } - }, - "id": 65791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12660:22:99", - "memberName": "multicallWithNodeCheck", - "nodeType": "MemberAccess", - "referencedDeclaration": 67886, - "src": "12627:55:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (bytes32,bytes memory[] memory) external returns (bytes memory[] memory)" - } - }, - "id": 65797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12627:74:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 65798, - "nodeType": "ExpressionStatement", - "src": "12627:74:99" - } - ] - }, - "documentation": { - "id": 65778, - "nodeType": "StructuredDocumentation", - "src": "12467:61:99", - "text": " @dev Sets data into resolver address contract." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setRecords", - "nameLocation": "12540:11:99", - "parameters": { - "id": 65786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65780, - "mutability": "mutable", - "name": "resolverAddress", - "nameLocation": "12560:15:99", - "nodeType": "VariableDeclaration", - "scope": 65800, - "src": "12552:23:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12552:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65782, - "mutability": "mutable", - "name": "id", - "nameLocation": "12585:2:99", - "nodeType": "VariableDeclaration", - "scope": 65800, - "src": "12577:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12577:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65785, - "mutability": "mutable", - "name": "data", - "nameLocation": "12606:4:99", - "nodeType": "VariableDeclaration", - "scope": 65800, - "src": "12589:21:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 65783, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12589:5:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 65784, - "nodeType": "ArrayTypeName", - "src": "12589:7:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "12551:60:99" - }, - "returnParameters": { - "id": 65787, - "nodeType": "ParameterList", - "parameters": [], - "src": "12621:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65821, - "nodeType": "FunctionDefinition", - "src": "12766:150:99", - "nodes": [], - "body": { - "id": 65820, - "nodeType": "Block", - "src": "12837:79:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 65811, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65805, - "src": "12876:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 65815, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65803, - "src": "12897:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "hexValue": "2e726f6e", - "id": 65816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12903:6:99", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7d70d06a1900ccfa2446eb28021a437994c1f9fa73829ed90342a37408690f75", - "typeString": "literal_string \".ron\"" - }, - "value": ".ron" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_7d70d06a1900ccfa2446eb28021a437994c1f9fa73829ed90342a37408690f75", - "typeString": "literal_string \".ron\"" - } - ], - "expression": { - "id": 65813, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12883:6:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 65812, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12883:6:99", - "typeDescriptions": {} - } - }, - "id": 65814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12890:6:99", - "memberName": "concat", - "nodeType": "MemberAccess", - "src": "12883:13:99", - "typeDescriptions": { - "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", - "typeString": "function () pure returns (string memory)" - } - }, - "id": 65817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12883:27:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 65808, - "name": "_reverseRegistrar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64915, - "src": "12843:17:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSReverseRegistrar_$66789", - "typeString": "contract INSReverseRegistrar" - } - }, - "id": 65810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12861:14:99", - "memberName": "setNameForAddr", - "nodeType": "MemberAccess", - "referencedDeclaration": 66772, - "src": "12843:32:99", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,string memory) external returns (uint256)" - } - }, - "id": 65818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12843:68:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 65819, - "nodeType": "ExpressionStatement", - "src": "12843:68:99" - } - ] - }, - "documentation": { - "id": 65801, - "nodeType": "StructuredDocumentation", - "src": "12710:53:99", - "text": " @dev Sets data into reverse registrar." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setReverseRecord", - "nameLocation": "12775:17:99", - "parameters": { - "id": 65806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65803, - "mutability": "mutable", - "name": "name", - "nameLocation": "12807:4:99", - "nodeType": "VariableDeclaration", - "scope": 65821, - "src": "12793:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65802, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12793:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65805, - "mutability": "mutable", - "name": "owner", - "nameLocation": "12821:5:99", - "nodeType": "VariableDeclaration", - "scope": 65821, - "src": "12813:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12813:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "12792:35:99" - }, - "returnParameters": { - "id": 65807, - "nodeType": "ParameterList", - "parameters": [], - "src": "12837:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65837, - "nodeType": "FunctionDefinition", - "src": "12991:118:99", - "nodes": [], - "body": { - "id": 65836, - "nodeType": "Block", - "src": "13034:75:99", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 65828, - "name": "_treasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64899, - "src": "13071:9:99", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "expression": { - "arguments": [ - { - "id": 65831, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "13090:4:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RONRegistrarController_$65991", - "typeString": "contract RONRegistrarController" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_RONRegistrarController_$65991", - "typeString": "contract RONRegistrarController" - } - ], - "id": 65830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13082:7:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 65829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13082:7:99", - "typeDescriptions": {} - } - }, - "id": 65832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13082:13:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 65833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13096:7:99", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "13082:21:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65825, - "name": "RONTransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69515, - "src": "13040:17:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$69515_$", - "typeString": "type(library RONTransferHelper)" - } - }, - "id": 65827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13058:12:99", - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 69490, - "src": "13040:30:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 65834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13040:64:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65835, - "nodeType": "ExpressionStatement", - "src": "13040:64:99" - } - ] - }, - "documentation": { - "id": 65822, - "nodeType": "StructuredDocumentation", - "src": "12920:68:99", - "text": " @dev Helper method to take fee into treasury address." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferRONToTreasury", - "nameLocation": "13000:22:99", - "parameters": { - "id": 65823, - "nodeType": "ParameterList", - "parameters": [], - "src": "13022:2:99" - }, - "returnParameters": { - "id": 65824, - "nodeType": "ParameterList", - "parameters": [], - "src": "13034:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65893, - "nodeType": "FunctionDefinition", - "src": "13180:433:99", - "nodes": [], - "body": { - "id": 65892, - "nodeType": "Block", - "src": "13293:320:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 65849, - "name": "usdPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65845, - "src": "13300:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65850, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65847, - "src": "13310:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 65851, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "13299:20:99", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 65853, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65840, - "src": "13332:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65854, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65842, - "src": "13338:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65852, - "name": "rentPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65087, - "src": "13322:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_uint64_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (string memory,uint64) view returns (uint256,uint256)" - } - }, - "id": 65855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13322:25:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "13299:48:99", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65857, - "nodeType": "ExpressionStatement", - "src": "13299:48:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65858, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13357:3:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 65859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13361:5:99", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "13357:9:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 65860, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65847, - "src": "13369:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13357:20:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65865, - "nodeType": "IfStatement", - "src": "13353:52:99", - "trueBody": { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65862, - "name": "InsufficientValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67207, - "src": "13386:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 65863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13386:19:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65864, - "nodeType": "RevertStatement", - "src": "13379:26:99" - } - }, - { - "id": 65888, - "nodeType": "UncheckedBlock", - "src": "13412:166:99", - "statements": [ - { - "assignments": [ - 65867 - ], - "declarations": [ - { - "constant": false, - "id": 65867, - "mutability": "mutable", - "name": "remainAmount", - "nameLocation": "13438:12:99", - "nodeType": "VariableDeclaration", - "scope": 65888, - "src": "13430:20:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65866, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13430:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65872, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13453:3:99", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 65869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13457:5:99", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "13453:9:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 65870, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65847, - "src": "13465:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13453:20:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13430:43:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 65873, - "name": "remainAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65867, - "src": "13485:12:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 65874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13501:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13485:17:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65887, - "nodeType": "IfStatement", - "src": "13481:90:99", - "trueBody": { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65881, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "13543:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13543:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13535:8:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 65879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13535:8:99", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 65883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13535:21:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 65884, - "name": "remainAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65867, - "src": "13558:12:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 65876, - "name": "RONTransferHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69515, - "src": "13504:17:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RONTransferHelper_$69515_$", - "typeString": "type(library RONTransferHelper)" - } - }, - "id": 65878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13522:12:99", - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 69490, - "src": "13504:30:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 65885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13504:67:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65886, - "nodeType": "ExpressionStatement", - "src": "13504:67:99" - } - } - ] - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65889, - "name": "_transferRONToTreasury", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65837, - "src": "13584:22:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 65890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13584:24:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65891, - "nodeType": "ExpressionStatement", - "src": "13584:24:99" - } - ] - }, - "documentation": { - "id": 65838, - "nodeType": "StructuredDocumentation", - "src": "13113:64:99", - "text": " @dev Helper method to take renewal fee of a name." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_handlePrice", - "nameLocation": "13189:12:99", - "parameters": { - "id": 65843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65840, - "mutability": "mutable", - "name": "name", - "nameLocation": "13216:4:99", - "nodeType": "VariableDeclaration", - "scope": 65893, - "src": "13202:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65839, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "13202:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65842, - "mutability": "mutable", - "name": "duration", - "nameLocation": "13229:8:99", - "nodeType": "VariableDeclaration", - "scope": 65893, - "src": "13222:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65841, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13222:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "13201:37:99" - }, - "returnParameters": { - "id": 65848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65845, - "mutability": "mutable", - "name": "usdPrice", - "nameLocation": "13265:8:99", - "nodeType": "VariableDeclaration", - "scope": 65893, - "src": "13257:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13257:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65847, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "13283:8:99", - "nodeType": "VariableDeclaration", - "scope": 65893, - "src": "13275:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13275:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13256:36:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65956, - "nodeType": "FunctionDefinition", - "src": "13726:516:99", - "nodes": [], - "body": { - "id": 65955, - "nodeType": "Block", - "src": "13939:303:99", - "nodes": [], - "statements": [ - { - "assignments": [ - 65915, - 65917 - ], - "declarations": [ - { - "constant": false, - "id": 65915, - "mutability": "mutable", - "name": "expiryTime", - "nameLocation": "13953:10:99", - "nodeType": "VariableDeclaration", - "scope": 65955, - "src": "13946:17:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65914, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13946:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65917, - "mutability": "mutable", - "name": "id", - "nameLocation": "13973:2:99", - "nodeType": "VariableDeclaration", - "scope": 65955, - "src": "13965:10:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65916, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13965:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 65927, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 65920, - "name": "LibRNSDomain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68113, - "src": "13996:12:99", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibRNSDomain_$68113_$", - "typeString": "type(library LibRNSDomain)" - } - }, - "id": 65921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "14009:6:99", - "memberName": "RON_ID", - "nodeType": "MemberAccess", - "referencedDeclaration": 68076, - "src": "13996:19:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65922, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65896, - "src": "14017:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65923, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65902, - "src": "14023:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65924, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65898, - "src": "14033:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65925, - "name": "duration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65900, - "src": "14040:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "id": 65918, - "name": "_rnsUnified", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64903, - "src": "13979:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSUnified_$67046", - "typeString": "contract INSUnified" - } - }, - "id": 65919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13991:4:99", - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 66966, - "src": "13979:16:99", - "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": 65926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13979:70:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_uint256_$", - "typeString": "tuple(uint64,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13945:104:99" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 65928, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65905, - "src": "14059:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 65929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14064:6:99", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "14059:11:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 65930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14074:1:99", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14059:16:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65938, - "nodeType": "IfStatement", - "src": "14055:53:99", - "trueBody": { - "expression": { - "arguments": [ - { - "id": 65933, - "name": "resolver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65902, - "src": "14089:8:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65934, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65917, - "src": "14099:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65935, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65905, - "src": "14103:4:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - ], - "id": 65932, - "name": "_setRecords", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65800, - "src": "14077:11:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (address,uint256,bytes calldata[] calldata)" - } - }, - "id": 65936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14077:31:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65937, - "nodeType": "ExpressionStatement", - "src": "14077:31:99" - } - }, - { - "condition": { - "id": 65939, - "name": "reverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65907, - "src": "14118:13:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65945, - "nodeType": "IfStatement", - "src": "14114:49:99", - "trueBody": { - "expression": { - "arguments": [ - { - "id": 65941, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65896, - "src": "14151:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65942, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65898, - "src": "14157:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65940, - "name": "_setReverseRecord", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65821, - "src": "14133:17:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (string memory,address)" - } - }, - "id": 65943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14133:30:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65944, - "nodeType": "ExpressionStatement", - "src": "14133:30:99" - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 65947, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65896, - "src": "14189:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 65948, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65917, - "src": "14195:2:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65949, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65898, - "src": "14199:5:99", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65950, - "name": "ronPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65911, - "src": "14206:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65951, - "name": "usdPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65909, - "src": "14216:8:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 65952, - "name": "expiryTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65915, - "src": "14226:10:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 65946, - "name": "NameRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67276, - "src": "14174:14:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint64_$returns$__$", - "typeString": "function (string memory,uint256,address,uint256,uint256,uint64)" - } - }, - "id": 65953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14174:63:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65954, - "nodeType": "EmitStatement", - "src": "14169:68:99" - } - ] - }, - "documentation": { - "id": 65894, - "nodeType": "StructuredDocumentation", - "src": "13617:106:99", - "text": " @dev Helper method to register a name for owner.\n Emits an event {NameRegistered}." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_register", - "nameLocation": "13735:9:99", - "parameters": { - "id": 65912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65896, - "mutability": "mutable", - "name": "name", - "nameLocation": "13764:4:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13750:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65895, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "13750:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65898, - "mutability": "mutable", - "name": "owner", - "nameLocation": "13782:5:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13774:13:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13774:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65900, - "mutability": "mutable", - "name": "duration", - "nameLocation": "13800:8:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13793:15:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 65899, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13793:6:99", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65902, - "mutability": "mutable", - "name": "resolver", - "nameLocation": "13822:8:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13814:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65901, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13814:7:99", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65905, - "mutability": "mutable", - "name": "data", - "nameLocation": "13853:4:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13836:21:99", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 65903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13836:5:99", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 65904, - "nodeType": "ArrayTypeName", - "src": "13836:7:99", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65907, - "mutability": "mutable", - "name": "reverseRecord", - "nameLocation": "13868:13:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13863:18:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 65906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13863:4:99", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65909, - "mutability": "mutable", - "name": "usdPrice", - "nameLocation": "13895:8:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13887:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65908, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13887:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 65911, - "mutability": "mutable", - "name": "ronPrice", - "nameLocation": "13917:8:99", - "nodeType": "VariableDeclaration", - "scope": 65956, - "src": "13909:16:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65910, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13909:7:99", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13744:185:99" - }, - "returnParameters": { - "id": 65913, - "nodeType": "ParameterList", - "parameters": [], - "src": "13939:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65974, - "nodeType": "FunctionDefinition", - "src": "14364:155:99", - "nodes": [], - "body": { - "id": 65973, - "nodeType": "Block", - "src": "14426:93:99", - "nodes": [], - "statements": [ - { - "expression": { - "id": 65965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 65963, - "name": "_priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64911, - "src": "14432:12:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 65964, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65960, - "src": "14447:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "src": "14432:26:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "id": 65966, - "nodeType": "ExpressionStatement", - "src": "14432:26:99" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 65968, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52306, - "src": "14488:10:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 65969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14488:12:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65970, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65960, - "src": "14502:11:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - ], - "id": 65967, - "name": "DomainPriceUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67252, - "src": "14469:18:99", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_INSDomainPrice_$66670_$returns$__$", - "typeString": "function (address,contract INSDomainPrice)" - } - }, - "id": 65971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14469:45:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65972, - "nodeType": "EmitStatement", - "src": "14464:50:99" - } - ] - }, - "documentation": { - "id": 65957, - "nodeType": "StructuredDocumentation", - "src": "14246:115:99", - "text": " @dev Helper method to update RNSDomainPrice contract.\n Emits an event {DomainPriceUpdated}." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setPriceOracle", - "nameLocation": "14373:15:99", - "parameters": { - "id": 65961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65960, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "14404:11:99", - "nodeType": "VariableDeclaration", - "scope": 65974, - "src": "14389:26:99", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - }, - "typeName": { - "id": 65959, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 65958, - "name": "INSDomainPrice", - "nameLocations": [ - "14389:14:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 66670, - "src": "14389:14:99" - }, - "referencedDeclaration": 66670, - "src": "14389:14:99", - "typeDescriptions": { - "typeIdentifier": "t_contract$_INSDomainPrice_$66670", - "typeString": "contract INSDomainPrice" - } - }, - "visibility": "internal" - } - ], - "src": "14388:28:99" - }, - "returnParameters": { - "id": 65962, - "nodeType": "ParameterList", - "parameters": [], - "src": "14426:0:99" - }, - "scope": 65991, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 65990, - "nodeType": "FunctionDefinition", - "src": "14612:123:99", - "nodes": [], - "body": { - "id": 65989, - "nodeType": "Block", - "src": "14673:62:99", - "nodes": [], - "statements": [ - { - "condition": { - "id": 65983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14683:16:99", - "subExpression": { - "arguments": [ - { - "id": 65981, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65977, - "src": "14694:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65980, - "name": "available", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65128, - "src": "14684:9:99", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$", - "typeString": "function (string memory) view returns (bool)" - } - }, - "id": 65982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14684:15:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 65988, - "nodeType": "IfStatement", - "src": "14679:51:99", - "trueBody": { - "errorCall": { - "arguments": [ - { - "id": 65985, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65977, - "src": "14725:4:99", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 65984, - "name": "NameNotAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67191, - "src": "14708:16:99", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 65986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14708:22:99", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 65987, - "nodeType": "RevertStatement", - "src": "14701:29:99" - } - } - ] - }, - "documentation": { - "id": 65975, - "nodeType": "StructuredDocumentation", - "src": "14523:86:99", - "text": " @dev Helper method to check if a domain name is available for register." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requireAvailable", - "nameLocation": "14621:17:99", - "parameters": { - "id": 65978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65977, - "mutability": "mutable", - "name": "name", - "nameLocation": "14653:4:99", - "nodeType": "VariableDeclaration", - "scope": 65990, - "src": "14639:18:99", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 65976, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14639:6:99", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "14638:20:99" - }, - "returnParameters": { - "id": 65979, - "nodeType": "ParameterList", - "parameters": [], - "src": "14673:0:99" - }, - "scope": 65991, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 64851, - "name": "Pausable", - "nameLocations": [ - "1198:8:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50356, - "src": "1198:8:99" - }, - "id": 64852, - "nodeType": "InheritanceSpecifier", - "src": "1198:8:99" - }, - { - "baseName": { - "id": 64853, - "name": "Initializable", - "nameLocations": [ - "1210:13:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50248, - "src": "1210:13:99" - }, - "id": 64854, - "nodeType": "InheritanceSpecifier", - "src": "1210:13:99" - }, - { - "baseName": { - "id": 64855, - "name": "ReentrancyGuard", - "nameLocations": [ - "1227:15:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 50421, - "src": "1227:15:99" - }, - "id": 64856, - "nodeType": "InheritanceSpecifier", - "src": "1227:15:99" - }, - { - "baseName": { - "id": 64857, - "name": "AccessControlEnumerable", - "nameLocations": [ - "1246:23:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48975, - "src": "1246:23:99" - }, - "id": 64858, - "nodeType": "InheritanceSpecifier", - "src": "1246:23:99" - }, - { - "baseName": { - "id": 64859, - "name": "IRONRegistrarController", - "nameLocations": [ - "1273:23:99" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 67531, - "src": "1273:23:99" - }, - "id": 64860, - "nodeType": "InheritanceSpecifier", - "src": "1273:23:99" - } - ], - "canonicalName": "RONRegistrarController", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 64850, - "nodeType": "StructuredDocumentation", - "src": "842:318:99", - "text": " @title RONRegistrarController\n @notice Customized version of ETHRegistrarController: https://github.com/ensdomains/ens-contracts/blob/45455f1229556ed4f416ef7225d4caea2c1bc0b5/contracts/ethregistrar/ETHRegistrarController.sol\n @dev A registrar controller for registering and renewing names at fixed cost." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 65991, - 67531, - 48975, - 48850, - 52679, - 52691, - 49073, - 49048, - 50421, - 50248, - 50356, - 52316 - ], - "name": "RONRegistrarController", - "nameLocation": "1170:22:99", - "scope": 65992, - "usedErrors": [ - 67181, - 67186, - 67191, - 67196, - 67199, - 67204, - 67207, - 67212, - 67215, - 67218, - 67223, - 67234, - 67237 - ], - "usedEvents": [ - 48987, - 48996, - 49005, - 50094, - 50259, - 50264, - 67244, - 67252, - 67261, - 67276, - 67287, - 67300 - ] - } - ], - "license": "MIT" - }, - "blockNumber": 29142324, - "bytecode": "0x60806040526000805460ff19169055600180556200001c62000022565b620000e9565b60005462010000900460ff1615620000905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600054610100900460ff90811614620000e7576000805461ff00191661ff0017905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612f6980620000f96000396000f3fe6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a61024536600461207d565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120a7565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d6103583660046120d5565b610745565b005b34801561036b57600080fd5b5061035d61037a3660046120d5565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b83660046120d5565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612105565b610815565b61035d61043b366004612137565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d6104733660046121b9565b6109d8565b34801561048457600080fd5b5061035d6104933660046122c0565b610b84565b3480156104a457600080fd5b5061035d610cbd565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d9366004612450565b610cdd565b3480156104ea57600080fd5b506102a26104f936600461250b565b610e3e565b34801561050a57600080fd5b5061024a6105193660046120d5565b610e5d565b34801561052a57600080fd5b5061024a61053936600461252d565b610e88565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e36600461252d565b610f16565b34801561057f57600080fd5b5061027361058e366004612569565b610fa1565b34801561059f57600080fd5b5061035d6105ae3660046120a7565b611051565b3480156105bf57600080fd5b506103086105ce3660046120a7565b611065565b61035d6105e13660046125af565b61107c565b3480156105f257600080fd5b5061035d6106013660046120d5565b611188565b34801561061257600080fd5b506103086106213660046125af565b6111ad565b34801561063257600080fd5b5061035d61064136600461250b565b611239565b34801561065257600080fd5b50610308600080516020612f1483398151915281565b34801561067457600080fd5b5061035d610683366004612105565b61124e565b34801561069457600080fd5b5061035d6106a33660046120a7565b61127c565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f736600461252d565b6112d5565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f82611312565b92915050565b60008281526002602052604090206001015461076081611347565b61076a8383611351565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611373565b5050565b600080516020612f1483398151915261080a81611347565b610812611395565b50565b600061082081611347565b6107ee826113e7565b61083161143e565b610839611486565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610fa1915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac8234612689565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112d592505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610973919061269c565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab94939291906126e2565b60405180910390a282156109c3576109c333846114df565b6109cb611544565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f148339815191528b61155a565b610aca60008c61155a565b610ad3836113e7565b610adc86611564565b610ae6878961159b565b603980546001600160a01b03808c166001600160a01b031992831617909255603a8054888416908316179055603b8054878416908316179055603d8054928516929091169190911790558015610b77576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610bae81611347565b84801580610bbc5750808414155b15610bda57604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c6a5783603f60008a8a85818110610bfc57610bfc612716565b9050602002013581526020019081526020016000206000888885818110610c2557610c25612716565b9050602002016020810190610c3a9190612105565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bdd565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610cac95949392919061272c565b60405180910390a250505050505050565b600080516020612f14833981519152610cd581611347565b610812611625565b610ce561143e565b610ced611486565b86610cf781611662565b610d0088610f16565b610d1f57876040516308eee0fd60e31b81526004016107db9190612816565b6000610d2a896112d5565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d79573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da191908101906128e3565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dde575080155b15610e04578a8a8383604051631fc5717160e01b81526004016107db94939291906129c5565b600080610e118d8c61168a565b91509150610e268d8d8d8d8d8d8d89896116e2565b505050505050610e3560018055565b50505050505050565b6000828152600360205260408120610e56908361180c565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e9583611818565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610ece908590600401612816565b602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906129ff565b1592915050565b6000610f2182610e88565b801561073f5750603a546001600160a01b03166396e494e8610f42846112d5565b6040518263ffffffff1660e01b8152600401610f6091815260200190565b602060405180830381865afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f91906129ff565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fdc9089908990600401612a1c565b608060405180830381865afa158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d9190612a77565b8051825192945090925061103091612aac565b9350806020015182602001516110469190612aac565b925050509250929050565b600061105c81611347565b6107ee82611564565b600081815260036020526040812061073f90611906565b61108461143e565b61108c611486565b6000611097896112d5565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261110991908101906128e3565b60200151606001511561113157886040516331597a5760e21b81526004016107db9190612816565b60006111438a8a8a8a8a8a8a8a6111ad565b905061114f8882611910565b60008061115c8c8b61168a565b915091506111718c8c8c8b8b8b8b89896116e2565b5050505061117e60018055565b5050505050505050565b6000828152600260205260409020600101546111a381611347565b61076a8383611373565b6000886111b981611662565b83158015906111cf57506001600160a01b038616155b156111ed576040516334fd817160e21b815260040160405180910390fd5b6111f68a6112d5565b89898989898989604051602001611214989796959493929190612b50565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124481611347565b61076a838361159b565b600061125981611347565b50603980546001600160a01b0319166001600160a01b0392909216919091179055565b61128461143e565b6037546000828152603e602052604090205442916112a191612aac565b106112c257604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b61081281336119c1565b61135b82826119f4565b600082815260036020526040902061076a9082611a7a565b61137d8282611a8f565b600082815260036020526040902061076a9082611af6565b61139d611b0b565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114845760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114d85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114eb8383611b54565b90508061076a57611504836001600160a01b0316611bca565b61150d83611be0565b60405160200161151e929190612bb0565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612816565b603954611484906001600160a01b0316476114df565b6107ee8282611351565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611433565b428111156115bc57604051630b4319e560e21b815260040160405180910390fd5b8181116115dc576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b61162d61143e565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ca3390565b61166b81610f16565b61081257806040516308eee0fd60e31b81526004016107db9190612816565b6000806116978484610fa1565b9092509050348111156116bd5760405163044044a560e21b815260040160405180910390fd5b348181039082146116d2576116d233826114df565b506116db611544565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b815260040161174e959493929190612c2e565b60408051808303816000875af115801561176c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117909190612c79565b909250905085156117a7576117a788828989611bf7565b84156117b7576117b78b8b611c75565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d8688876040516117f79493929190612ca7565b60405180910390a35050505050505050505050565b6000610e568383611d0c565b600080600080845190505b808310156118fe57600085848151811061183f5761183f612716565b01602001516001600160f81b0319169050600160ff1b811015611867576001840193506118f2565b600760fd1b6001600160f81b031982161015611888576002840193506118f2565b600f60fc1b6001600160f81b0319821610156118a9576003840193506118f2565b601f60fb1b6001600160f81b0319821610156118ca576004840193506118f2565b603f60fa1b6001600160f81b0319821610156118eb576005840193506118f2565b6006840193505b50600190910190611823565b509392505050565b600061073f825490565b603854826001600160401b03161015611947576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119609042612689565b905060365481101561198857604051635320bcf960e01b8152600481018390526024016107db565b8060375410156119ae5760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b6119cb8282610e5d565b6107ee576119d881611bca565b6119e3836020611d36565b60405160200161151e929190612cdf565b6119fe8282610e5d565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a363390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e56836001600160a01b038416611ed1565b611a998282610e5d565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e56836001600160a01b038416611f20565b60005460ff166114845760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611b7e9190612d54565b60006040518083038185875af1925050503d8060008114611bbb576040519150601f19603f3d011682016040523d82523d6000602084013e611bc0565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d36565b606061073f82611bef84612013565b600101611d36565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c2790869086908690600401612d70565b6000604051808303816000875af1158015611c46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c6e9190810190612d93565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611c9d908690602001612e6a565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611cc9929190612e92565b6020604051808303816000875af1158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612eb6565b6000826000018281548110611d2357611d23612716565b9060005260206000200154905092915050565b60606000611d45836002612ecf565b611d50906002612aac565b6001600160401b03811115611d6757611d67612343565b6040519080825280601f01601f191660200182016040528015611d91576020820181803683370190505b509050600360fc1b81600081518110611dac57611dac612716565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ddb57611ddb612716565b60200101906001600160f81b031916908160001a9053506000611dff846002612ecf565b611e0a906001612aac565b90505b6001811115611e82576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e3e57611e3e612716565b1a60f81b828281518110611e5457611e54612716565b60200101906001600160f81b031916908160001a90535060049490941c93611e7b81612ee6565b9050611e0d565b508315610e565760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f185750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b60008181526001830160205260408120548015612009576000611f44600183612689565b8554909150600090611f5890600190612689565b9050818114611fbd576000866000018281548110611f7857611f78612716565b9060005260206000200154905080876000018481548110611f9b57611f9b612716565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611fce57611fce612efd565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561202b5760809290921c916010015b604083901c156120405760409290921c916008015b602083901c156120555760209290921c916004015b601083901c1561206a5760109290921c916002015b600883901c1561073f5760010192915050565b60006020828403121561208f57600080fd5b81356001600160e01b031981168114610e5657600080fd5b6000602082840312156120b957600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b600080604083850312156120e857600080fd5b8235915060208301356120fa816120c0565b809150509250929050565b60006020828403121561211757600080fd5b8135610e56816120c0565b6001600160401b038116811461081257600080fd5b60008060006040848603121561214c57600080fd5b83356001600160401b038082111561216357600080fd5b818601915086601f83011261217757600080fd5b81358181111561218657600080fd5b87602082850101111561219857600080fd5b602092830195509350508401356121ae81612122565b809150509250925092565b6000806000806000806000806000806101408b8d0312156121d957600080fd5b8a356121e4816120c0565b995060208b01356121f4816120c0565b985060408b0135612204816120c0565b975060608b0135965060808b0135955060a08b0135945060c08b0135612229816120c0565b935060e08b0135612239816120c0565b92506101008b013561224a816120c0565b91506101208b013561225b816120c0565b809150509295989b9194979a5092959850565b60008083601f84011261228057600080fd5b5081356001600160401b0381111561229757600080fd5b6020830191508360208260051b85010111156116db57600080fd5b801515811461081257600080fd5b6000806000806000606086880312156122d857600080fd5b85356001600160401b03808211156122ef57600080fd5b6122fb89838a0161226e565b9097509550602088013591508082111561231457600080fd5b506123218882890161226e565b9094509250506040860135612335816122b2565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561237b5761237b612343565b60405290565b604051606081016001600160401b038111828210171561237b5761237b612343565b604051601f8201601f191681016001600160401b03811182821017156123cb576123cb612343565b604052919050565b60006001600160401b038211156123ec576123ec612343565b50601f01601f191660200190565b600082601f83011261240b57600080fd5b813561241e612419826123d3565b6123a3565b81815284602083860101111561243357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a03121561246b57600080fd5b87356001600160401b038082111561248257600080fd5b61248e8b838c016123fa565b985060208a013591506124a0826120c0565b9096506040890135906124b282612122565b9095506060890135906124c4826120c0565b909450608089013590808211156124da57600080fd5b506124e78a828b0161226e565b90945092505060a08801356124fb816122b2565b8091505092959891949750929550565b6000806040838503121561251e57600080fd5b50508035926020909101359150565b60006020828403121561253f57600080fd5b81356001600160401b0381111561255557600080fd5b612561848285016123fa565b949350505050565b6000806040838503121561257c57600080fd5b82356001600160401b0381111561259257600080fd5b61259e858286016123fa565b92505060208301356120fa81612122565b60008060008060008060008060e0898b0312156125cb57600080fd5b88356001600160401b03808211156125e257600080fd5b6125ee8c838d016123fa565b995060208b01359150612600826120c0565b90975060408a01359061261282612122565b90965060608a0135955060808a01359061262b826120c0565b90945060a08a0135908082111561264157600080fd5b5061264e8b828c0161226e565b90945092505060c0890135612662816122b2565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f612673565b6000602082840312156126ae57600080fd5b8151610e5681612122565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006126f66060830186886126b9565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561274c57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127a957833561278c816120c0565b6001600160a01b0316815292810192600192909201918101612779565b861515604087015293506127bc92505050565b9695505050505050565b60005b838110156127e15781810151838201526020016127c9565b50506000910152565b600081518084526128028160208601602086016127c6565b601f01601f19169290920160200192915050565b602081526000610e5660208301846127ea565b6000612837612419846123d3565b905082815283838301111561284b57600080fd5b610e568360208301846127c6565b60006080828403121561286b57600080fd5b604051608081018181106001600160401b038211171561288d5761288d612343565b806040525080915082516128a0816120c0565b815260208301516128b0816120c0565b602082015260408301516128c381612122565b604082015260608301516128d6816122b2565b6060919091015292915050565b600060208083850312156128f657600080fd5b82516001600160401b038082111561290d57600080fd5b9084019060a0828703121561292157600080fd5b612929612359565b82518281111561293857600080fd5b83016060818903121561294a57600080fd5b612952612381565b815160ff8116811461296357600080fd5b8152818601518682015260408201518481111561297f57600080fd5b82019350601f8401891361299257600080fd5b6129a0898551888701612829565b60408201528252506129b487848601612859565b848201528094505050505092915050565b6080815260006129d860808301876127ea565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a1157600080fd5b8151610e56816122b2565b604081526000612a2f60408301856127ea565b90506001600160401b03831660208301529392505050565b600060408284031215612a5957600080fd5b612a61612359565b9050815181526020820151602082015292915050565b60008060808385031215612a8a57600080fd5b612a948484612a47565b9150612aa38460408501612a47565b90509250929050565b8082018082111561073f5761073f612673565b81835260006020808501808196508560051b810191508460005b87811015612b435782840389528135601e19883603018112612afa57600080fd5b870185810190356001600160401b03811115612b1557600080fd5b803603821315612b2457600080fd5b612b2f8682846126b9565b9a87019a9550505090840190600101612ad9565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612b999083018587612abf565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612bfb81602a8501602088016127c6565b660103b30b63ab2960cd1b602a918401918201528351612c228160318401602088016127c6565b01603101949350505050565b85815260a060208201526000612c4760a08301876127ea565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612c8c57600080fd5b8251612c9781612122565b6020939093015192949293505050565b608081526000612cba60808301876127ea565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d178160178501602088016127c6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d488160288401602088016127c6565b01602801949350505050565b60008251612d668184602087016127c6565b9190910192915050565b838152604060208201526000612d8a604083018486612abf565b95945050505050565b60006020808385031215612da657600080fd5b82516001600160401b0380821115612dbd57600080fd5b818501915085601f830112612dd157600080fd5b815181811115612de357612de3612343565b8060051b612df28582016123a3565b9182528381018501918581019089841115612e0c57600080fd5b86860192505b83831015612e5d57825185811115612e2a5760008081fd5b8601603f81018b13612e3c5760008081fd5b612e4d8b8983015160408401612829565b8352509186019190860190612e12565b9998505050505050505050565b60008251612e7c8184602087016127c6565b63173937b760e11b920191825250600401919050565b6001600160a01b0383168152604060208201819052600090612561908301846127ea565b600060208284031215612ec857600080fd5b5051919050565b808202811582820484141761073f5761073f612673565b600081612ef557612ef5612673565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa264697066735822122006f996c081232038f43c5a1b7c3f11015820d9739a2a8d4b25e938ce2da8ea5764736f6c63430008150033", + "absolutePath": "RONRegistrarController.sol", + "address": "0xAae506b2232eAEa59238Ffe501A9E6CFC8f9b843", + "ast": "", + "blockNumber": 36083767, + "bytecode": "0x60806040526000805460ff19169055600180556200001c62000022565b620000e9565b60005462010000900460ff1615620000905760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600054610100900460ff90811614620000e7576000805461ff00191661ff0017905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612fbc80620000f96000396000f3fe6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a6102453660046120d0565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120fa565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d610358366004612128565b610745565b005b34801561036b57600080fd5b5061035d61037a366004612128565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b8366004612128565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612158565b610815565b61035d61043b36600461218a565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d61047336600461220c565b6109d8565b34801561048457600080fd5b5061035d610493366004612313565b610b80565b3480156104a457600080fd5b5061035d610cb9565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d93660046124a3565b610cd9565b3480156104ea57600080fd5b506102a26104f936600461255e565b610e3a565b34801561050a57600080fd5b5061024a610519366004612128565b610e59565b34801561052a57600080fd5b5061024a610539366004612580565b610e84565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e366004612580565b610f12565b34801561057f57600080fd5b5061027361058e3660046125bc565b610f9d565b34801561059f57600080fd5b5061035d6105ae3660046120fa565b61104d565b3480156105bf57600080fd5b506103086105ce3660046120fa565b611061565b61035d6105e1366004612602565b611078565b3480156105f257600080fd5b5061035d610601366004612128565b611184565b34801561061257600080fd5b50610308610621366004612602565b6111a9565b34801561063257600080fd5b5061035d61064136600461255e565b611235565b34801561065257600080fd5b50610308600080516020612f6783398151915281565b34801561067457600080fd5b5061035d610683366004612158565b61124a565b34801561069457600080fd5b5061035d6106a33660046120fa565b61125e565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f7366004612580565b6112b7565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f826112f4565b92915050565b60008281526002602052604090206001015461076081611329565b61076a8383611333565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611355565b5050565b600080516020612f6783398151915261080a81611329565b610812611377565b50565b600061082081611329565b6107ee826113c9565b610831611420565b610839611468565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610f9d915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac82346126dc565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112b792505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097391906126ef565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab9493929190612735565b60405180910390a282156109c3576109c333846114c1565b6109cb611526565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f678339815191528b61153c565b610aca60008c61153c565b610ad3836113c9565b610adc86611546565b610ae6878961157d565b610aef89611607565b603a80546001600160a01b038088166001600160a01b031992831617909255603b8054878416908316179055603d8054928516929091169190911790558015610b73576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610baa81611329565b84801580610bb85750808414155b15610bd657604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c665783603f60008a8a85818110610bf857610bf8612769565b9050602002013581526020019081526020016000206000888885818110610c2157610c21612769565b9050602002016020810190610c369190612158565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bd9565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610ca895949392919061277f565b60405180910390a250505050505050565b600080516020612f67833981519152610cd181611329565b610812611678565b610ce1611420565b610ce9611468565b86610cf3816116b5565b610cfc88610f12565b610d1b57876040516308eee0fd60e31b81526004016107db9190612869565b6000610d26896112b7565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9d9190810190612936565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dda575080155b15610e00578a8a8383604051631fc5717160e01b81526004016107db9493929190612a18565b600080610e0d8d8c6116dd565b91509150610e228d8d8d8d8d8d8d8989611735565b505050505050610e3160018055565b50505050505050565b6000828152600360205260408120610e52908361185f565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e918361186b565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610eca908590600401612869565b602060405180830381865afa158015610ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612a52565b1592915050565b6000610f1d82610e84565b801561073f5750603a546001600160a01b03166396e494e8610f3e846112b7565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b602060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f9190612a52565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fd89089908990600401612a6f565b608060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612aca565b8051825192945090925061102c91612aff565b9350806020015182602001516110429190612aff565b925050509250929050565b600061105881611329565b6107ee82611546565b600081815260036020526040812061073f90611959565b611080611420565b611088611468565b6000611093896112b7565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111059190810190612936565b60200151606001511561112d57886040516331597a5760e21b81526004016107db9190612869565b600061113f8a8a8a8a8a8a8a8a6111a9565b905061114b8882611963565b6000806111588c8b6116dd565b9150915061116d8c8c8c8b8b8b8b8989611735565b5050505061117a60018055565b5050505050505050565b60008281526002602052604090206001015461119f81611329565b61076a8383611355565b6000886111b5816116b5565b83158015906111cb57506001600160a01b038616155b156111e9576040516334fd817160e21b815260040160405180910390fd5b6111f28a6112b7565b89898989898989604051602001611210989796959493929190612ba3565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124081611329565b61076a838361157d565b600061125581611329565b6107ee82611607565b611266611420565b6037546000828152603e6020526040902054429161128391612aff565b106112a457604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b6108128133611a14565b61133d8282611a47565b600082815260036020526040902061076a9082611acd565b61135f8282611ae2565b600082815260036020526040902061076a9082611b49565b61137f611b5e565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114665760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114ba5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114cd8383611ba7565b90508061076a576114e6836001600160a01b0316611c1d565b6114ef83611c33565b604051602001611500929190612c03565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612869565b603954611466906001600160a01b0316476114c1565b6107ee8282611333565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611415565b4281111561159e57604051630b4319e560e21b815260040160405180910390fd5b8181116115be576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b6001600160a01b03811661162e5760405163e99d5ac560e01b815260040160405180910390fd5b603980546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b611680611420565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ac3390565b6116be81610f12565b61081257806040516308eee0fd60e31b81526004016107db9190612869565b6000806116ea8484610f9d565b9092509050348111156117105760405163044044a560e21b815260040160405180910390fd5b348181039082146117255761172533826114c1565b5061172e611526565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b81526004016117a1959493929190612c81565b60408051808303816000875af11580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612ccc565b909250905085156117fa576117fa88828989611c4a565b841561180a5761180a8b8b611cc8565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d86888760405161184a9493929190612cfa565b60405180910390a35050505050505050505050565b6000610e528383611d5f565b600080600080845190505b8083101561195157600085848151811061189257611892612769565b01602001516001600160f81b0319169050600160ff1b8110156118ba57600184019350611945565b600760fd1b6001600160f81b0319821610156118db57600284019350611945565b600f60fc1b6001600160f81b0319821610156118fc57600384019350611945565b601f60fb1b6001600160f81b03198216101561191d57600484019350611945565b603f60fa1b6001600160f81b03198216101561193e57600584019350611945565b6006840193505b50600190910190611876565b509392505050565b600061073f825490565b603854826001600160401b0316101561199a576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119b390426126dc565b90506036548110156119db57604051635320bcf960e01b8152600481018390526024016107db565b806037541015611a015760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b611a1e8282610e59565b6107ee57611a2b81611c1d565b611a36836020611d89565b604051602001611500929190612d32565b611a518282610e59565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e52836001600160a01b038416611f24565b611aec8282610e59565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e52836001600160a01b038416611f73565b60005460ff166114665760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611bd19190612da7565b60006040518083038185875af1925050503d8060008114611c0e576040519150601f19603f3d011682016040523d82523d6000602084013e611c13565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d89565b606061073f82611c4284612066565b600101611d89565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c7a90869086908690600401612dc3565b6000604051808303816000875af1158015611c99573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cc19190810190612de6565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611cf0908690602001612ebd565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611d1c929190612ee5565b6020604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612f09565b6000826000018281548110611d7657611d76612769565b9060005260206000200154905092915050565b60606000611d98836002612f22565b611da3906002612aff565b6001600160401b03811115611dba57611dba612396565b6040519080825280601f01601f191660200182016040528015611de4576020820181803683370190505b509050600360fc1b81600081518110611dff57611dff612769565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e2e57611e2e612769565b60200101906001600160f81b031916908160001a9053506000611e52846002612f22565b611e5d906001612aff565b90505b6001811115611ed5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e9157611e91612769565b1a60f81b828281518110611ea757611ea7612769565b60200101906001600160f81b031916908160001a90535060049490941c93611ece81612f39565b9050611e60565b508315610e525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f6b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b6000818152600183016020526040812054801561205c576000611f976001836126dc565b8554909150600090611fab906001906126dc565b9050818114612010576000866000018281548110611fcb57611fcb612769565b9060005260206000200154905080876000018481548110611fee57611fee612769565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061202157612021612f50565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561207e5760809290921c916010015b604083901c156120935760409290921c916008015b602083901c156120a85760209290921c916004015b601083901c156120bd5760109290921c916002015b600883901c1561073f5760010192915050565b6000602082840312156120e257600080fd5b81356001600160e01b031981168114610e5257600080fd5b60006020828403121561210c57600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b6000806040838503121561213b57600080fd5b82359150602083013561214d81612113565b809150509250929050565b60006020828403121561216a57600080fd5b8135610e5281612113565b6001600160401b038116811461081257600080fd5b60008060006040848603121561219f57600080fd5b83356001600160401b03808211156121b657600080fd5b818601915086601f8301126121ca57600080fd5b8135818111156121d957600080fd5b8760208285010111156121eb57600080fd5b6020928301955093505084013561220181612175565b809150509250925092565b6000806000806000806000806000806101408b8d03121561222c57600080fd5b8a3561223781612113565b995060208b013561224781612113565b985060408b013561225781612113565b975060608b0135965060808b0135955060a08b0135945060c08b013561227c81612113565b935060e08b013561228c81612113565b92506101008b013561229d81612113565b91506101208b01356122ae81612113565b809150509295989b9194979a5092959850565b60008083601f8401126122d357600080fd5b5081356001600160401b038111156122ea57600080fd5b6020830191508360208260051b850101111561172e57600080fd5b801515811461081257600080fd5b60008060008060006060868803121561232b57600080fd5b85356001600160401b038082111561234257600080fd5b61234e89838a016122c1565b9097509550602088013591508082111561236757600080fd5b50612374888289016122c1565b909450925050604086013561238881612305565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156123ce576123ce612396565b60405290565b604051606081016001600160401b03811182821017156123ce576123ce612396565b604051601f8201601f191681016001600160401b038111828210171561241e5761241e612396565b604052919050565b60006001600160401b0382111561243f5761243f612396565b50601f01601f191660200190565b600082601f83011261245e57600080fd5b813561247161246c82612426565b6123f6565b81815284602083860101111561248657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a0312156124be57600080fd5b87356001600160401b03808211156124d557600080fd5b6124e18b838c0161244d565b985060208a013591506124f382612113565b90965060408901359061250582612175565b90955060608901359061251782612113565b9094506080890135908082111561252d57600080fd5b5061253a8a828b016122c1565b90945092505060a088013561254e81612305565b8091505092959891949750929550565b6000806040838503121561257157600080fd5b50508035926020909101359150565b60006020828403121561259257600080fd5b81356001600160401b038111156125a857600080fd5b6125b48482850161244d565b949350505050565b600080604083850312156125cf57600080fd5b82356001600160401b038111156125e557600080fd5b6125f18582860161244d565b925050602083013561214d81612175565b60008060008060008060008060e0898b03121561261e57600080fd5b88356001600160401b038082111561263557600080fd5b6126418c838d0161244d565b995060208b0135915061265382612113565b90975060408a01359061266582612175565b90965060608a0135955060808a01359061267e82612113565b90945060a08a0135908082111561269457600080fd5b506126a18b828c016122c1565b90945092505060c08901356126b581612305565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f6126c6565b60006020828403121561270157600080fd5b8151610e5281612175565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061274960608301868861270c565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561279f57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127fc5783356127df81612113565b6001600160a01b03168152928101926001929092019181016127cc565b8615156040870152935061280f92505050565b9695505050505050565b60005b8381101561283457818101518382015260200161281c565b50506000910152565b60008151808452612855816020860160208601612819565b601f01601f19169290920160200192915050565b602081526000610e52602083018461283d565b600061288a61246c84612426565b905082815283838301111561289e57600080fd5b610e52836020830184612819565b6000608082840312156128be57600080fd5b604051608081018181106001600160401b03821117156128e0576128e0612396565b806040525080915082516128f381612113565b8152602083015161290381612113565b6020820152604083015161291681612175565b6040820152606083015161292981612305565b6060919091015292915050565b6000602080838503121561294957600080fd5b82516001600160401b038082111561296057600080fd5b9084019060a0828703121561297457600080fd5b61297c6123ac565b82518281111561298b57600080fd5b83016060818903121561299d57600080fd5b6129a56123d4565b815160ff811681146129b657600080fd5b815281860151868201526040820151848111156129d257600080fd5b82019350601f840189136129e557600080fd5b6129f389855188870161287c565b6040820152825250612a07878486016128ac565b848201528094505050505092915050565b608081526000612a2b608083018761283d565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a6457600080fd5b8151610e5281612305565b604081526000612a82604083018561283d565b90506001600160401b03831660208301529392505050565b600060408284031215612aac57600080fd5b612ab46123ac565b9050815181526020820151602082015292915050565b60008060808385031215612add57600080fd5b612ae78484612a9a565b9150612af68460408501612a9a565b90509250929050565b8082018082111561073f5761073f6126c6565b81835260006020808501808196508560051b810191508460005b87811015612b965782840389528135601e19883603018112612b4d57600080fd5b870185810190356001600160401b03811115612b6857600080fd5b803603821315612b7757600080fd5b612b8286828461270c565b9a87019a9550505090840190600101612b2c565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612bec9083018587612b12565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612c4e81602a850160208801612819565b660103b30b63ab2960cd1b602a918401918201528351612c75816031840160208801612819565b01603101949350505050565b85815260a060208201526000612c9a60a083018761283d565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612cdf57600080fd5b8251612cea81612175565b6020939093015192949293505050565b608081526000612d0d608083018761283d565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d6a816017850160208801612819565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d9b816028840160208801612819565b01602801949350505050565b60008251612db9818460208701612819565b9190910192915050565b838152604060208201526000612ddd604083018486612b12565b95945050505050565b60006020808385031215612df957600080fd5b82516001600160401b0380821115612e1057600080fd5b818501915085601f830112612e2457600080fd5b815181811115612e3657612e36612396565b8060051b612e458582016123f6565b9182528381018501918581019089841115612e5f57600080fd5b86860192505b83831015612eb057825185811115612e7d5760008081fd5b8601603f81018b13612e8f5760008081fd5b612ea08b898301516040840161287c565b8352509186019190860190612e65565b9998505050505050505050565b60008251612ecf818460208701612819565b63173937b760e11b920191825250600401919050565b6001600160a01b03831681526040602082018190526000906125b49083018461283d565b600060208284031215612f1b57600080fd5b5051919050565b808202811582820484141761073f5761073f6126c6565b600081612f4857612f486126c6565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa26469706673582212203a109c3a44f7a0139823c421a40975bf8029ef66d689d4458e4d45cf8a5dbf8264736f6c63430008150033", + "callValue": 0, "chainId": 2020, + "constructorArgs": "0x", "contractName": "RONRegistrarController", - "deployedBytecode": "0x6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a61024536600461207d565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120a7565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d6103583660046120d5565b610745565b005b34801561036b57600080fd5b5061035d61037a3660046120d5565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b83660046120d5565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612105565b610815565b61035d61043b366004612137565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d6104733660046121b9565b6109d8565b34801561048457600080fd5b5061035d6104933660046122c0565b610b84565b3480156104a457600080fd5b5061035d610cbd565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d9366004612450565b610cdd565b3480156104ea57600080fd5b506102a26104f936600461250b565b610e3e565b34801561050a57600080fd5b5061024a6105193660046120d5565b610e5d565b34801561052a57600080fd5b5061024a61053936600461252d565b610e88565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e36600461252d565b610f16565b34801561057f57600080fd5b5061027361058e366004612569565b610fa1565b34801561059f57600080fd5b5061035d6105ae3660046120a7565b611051565b3480156105bf57600080fd5b506103086105ce3660046120a7565b611065565b61035d6105e13660046125af565b61107c565b3480156105f257600080fd5b5061035d6106013660046120d5565b611188565b34801561061257600080fd5b506103086106213660046125af565b6111ad565b34801561063257600080fd5b5061035d61064136600461250b565b611239565b34801561065257600080fd5b50610308600080516020612f1483398151915281565b34801561067457600080fd5b5061035d610683366004612105565b61124e565b34801561069457600080fd5b5061035d6106a33660046120a7565b61127c565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f736600461252d565b6112d5565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f82611312565b92915050565b60008281526002602052604090206001015461076081611347565b61076a8383611351565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611373565b5050565b600080516020612f1483398151915261080a81611347565b610812611395565b50565b600061082081611347565b6107ee826113e7565b61083161143e565b610839611486565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610fa1915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac8234612689565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112d592505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610973919061269c565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab94939291906126e2565b60405180910390a282156109c3576109c333846114df565b6109cb611544565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f148339815191528b61155a565b610aca60008c61155a565b610ad3836113e7565b610adc86611564565b610ae6878961159b565b603980546001600160a01b03808c166001600160a01b031992831617909255603a8054888416908316179055603b8054878416908316179055603d8054928516929091169190911790558015610b77576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610bae81611347565b84801580610bbc5750808414155b15610bda57604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c6a5783603f60008a8a85818110610bfc57610bfc612716565b9050602002013581526020019081526020016000206000888885818110610c2557610c25612716565b9050602002016020810190610c3a9190612105565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bdd565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610cac95949392919061272c565b60405180910390a250505050505050565b600080516020612f14833981519152610cd581611347565b610812611625565b610ce561143e565b610ced611486565b86610cf781611662565b610d0088610f16565b610d1f57876040516308eee0fd60e31b81526004016107db9190612816565b6000610d2a896112d5565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d79573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da191908101906128e3565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dde575080155b15610e04578a8a8383604051631fc5717160e01b81526004016107db94939291906129c5565b600080610e118d8c61168a565b91509150610e268d8d8d8d8d8d8d89896116e2565b505050505050610e3560018055565b50505050505050565b6000828152600360205260408120610e56908361180c565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e9583611818565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610ece908590600401612816565b602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906129ff565b1592915050565b6000610f2182610e88565b801561073f5750603a546001600160a01b03166396e494e8610f42846112d5565b6040518263ffffffff1660e01b8152600401610f6091815260200190565b602060405180830381865afa158015610f7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f91906129ff565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fdc9089908990600401612a1c565b608060405180830381865afa158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d9190612a77565b8051825192945090925061103091612aac565b9350806020015182602001516110469190612aac565b925050509250929050565b600061105c81611347565b6107ee82611564565b600081815260036020526040812061073f90611906565b61108461143e565b61108c611486565b6000611097896112d5565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261110991908101906128e3565b60200151606001511561113157886040516331597a5760e21b81526004016107db9190612816565b60006111438a8a8a8a8a8a8a8a6111ad565b905061114f8882611910565b60008061115c8c8b61168a565b915091506111718c8c8c8b8b8b8b89896116e2565b5050505061117e60018055565b5050505050505050565b6000828152600260205260409020600101546111a381611347565b61076a8383611373565b6000886111b981611662565b83158015906111cf57506001600160a01b038616155b156111ed576040516334fd817160e21b815260040160405180910390fd5b6111f68a6112d5565b89898989898989604051602001611214989796959493929190612b50565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124481611347565b61076a838361159b565b600061125981611347565b50603980546001600160a01b0319166001600160a01b0392909216919091179055565b61128461143e565b6037546000828152603e602052604090205442916112a191612aac565b106112c257604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b61081281336119c1565b61135b82826119f4565b600082815260036020526040902061076a9082611a7a565b61137d8282611a8f565b600082815260036020526040902061076a9082611af6565b61139d611b0b565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114845760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114d85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114eb8383611b54565b90508061076a57611504836001600160a01b0316611bca565b61150d83611be0565b60405160200161151e929190612bb0565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612816565b603954611484906001600160a01b0316476114df565b6107ee8282611351565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611433565b428111156115bc57604051630b4319e560e21b815260040160405180910390fd5b8181116115dc576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b61162d61143e565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ca3390565b61166b81610f16565b61081257806040516308eee0fd60e31b81526004016107db9190612816565b6000806116978484610fa1565b9092509050348111156116bd5760405163044044a560e21b815260040160405180910390fd5b348181039082146116d2576116d233826114df565b506116db611544565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b815260040161174e959493929190612c2e565b60408051808303816000875af115801561176c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117909190612c79565b909250905085156117a7576117a788828989611bf7565b84156117b7576117b78b8b611c75565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d8688876040516117f79493929190612ca7565b60405180910390a35050505050505050505050565b6000610e568383611d0c565b600080600080845190505b808310156118fe57600085848151811061183f5761183f612716565b01602001516001600160f81b0319169050600160ff1b811015611867576001840193506118f2565b600760fd1b6001600160f81b031982161015611888576002840193506118f2565b600f60fc1b6001600160f81b0319821610156118a9576003840193506118f2565b601f60fb1b6001600160f81b0319821610156118ca576004840193506118f2565b603f60fa1b6001600160f81b0319821610156118eb576005840193506118f2565b6006840193505b50600190910190611823565b509392505050565b600061073f825490565b603854826001600160401b03161015611947576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119609042612689565b905060365481101561198857604051635320bcf960e01b8152600481018390526024016107db565b8060375410156119ae5760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b6119cb8282610e5d565b6107ee576119d881611bca565b6119e3836020611d36565b60405160200161151e929190612cdf565b6119fe8282610e5d565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a363390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e56836001600160a01b038416611ed1565b611a998282610e5d565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e56836001600160a01b038416611f20565b60005460ff166114845760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611b7e9190612d54565b60006040518083038185875af1925050503d8060008114611bbb576040519150601f19603f3d011682016040523d82523d6000602084013e611bc0565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d36565b606061073f82611bef84612013565b600101611d36565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c2790869086908690600401612d70565b6000604051808303816000875af1158015611c46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c6e9190810190612d93565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611c9d908690602001612e6a565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611cc9929190612e92565b6020604051808303816000875af1158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612eb6565b6000826000018281548110611d2357611d23612716565b9060005260206000200154905092915050565b60606000611d45836002612ecf565b611d50906002612aac565b6001600160401b03811115611d6757611d67612343565b6040519080825280601f01601f191660200182016040528015611d91576020820181803683370190505b509050600360fc1b81600081518110611dac57611dac612716565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611ddb57611ddb612716565b60200101906001600160f81b031916908160001a9053506000611dff846002612ecf565b611e0a906001612aac565b90505b6001811115611e82576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e3e57611e3e612716565b1a60f81b828281518110611e5457611e54612716565b60200101906001600160f81b031916908160001a90535060049490941c93611e7b81612ee6565b9050611e0d565b508315610e565760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f185750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b60008181526001830160205260408120548015612009576000611f44600183612689565b8554909150600090611f5890600190612689565b9050818114611fbd576000866000018281548110611f7857611f78612716565b9060005260206000200154905080876000018481548110611f9b57611f9b612716565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611fce57611fce612efd565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561202b5760809290921c916010015b604083901c156120405760409290921c916008015b602083901c156120555760209290921c916004015b601083901c1561206a5760109290921c916002015b600883901c1561073f5760010192915050565b60006020828403121561208f57600080fd5b81356001600160e01b031981168114610e5657600080fd5b6000602082840312156120b957600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b600080604083850312156120e857600080fd5b8235915060208301356120fa816120c0565b809150509250929050565b60006020828403121561211757600080fd5b8135610e56816120c0565b6001600160401b038116811461081257600080fd5b60008060006040848603121561214c57600080fd5b83356001600160401b038082111561216357600080fd5b818601915086601f83011261217757600080fd5b81358181111561218657600080fd5b87602082850101111561219857600080fd5b602092830195509350508401356121ae81612122565b809150509250925092565b6000806000806000806000806000806101408b8d0312156121d957600080fd5b8a356121e4816120c0565b995060208b01356121f4816120c0565b985060408b0135612204816120c0565b975060608b0135965060808b0135955060a08b0135945060c08b0135612229816120c0565b935060e08b0135612239816120c0565b92506101008b013561224a816120c0565b91506101208b013561225b816120c0565b809150509295989b9194979a5092959850565b60008083601f84011261228057600080fd5b5081356001600160401b0381111561229757600080fd5b6020830191508360208260051b85010111156116db57600080fd5b801515811461081257600080fd5b6000806000806000606086880312156122d857600080fd5b85356001600160401b03808211156122ef57600080fd5b6122fb89838a0161226e565b9097509550602088013591508082111561231457600080fd5b506123218882890161226e565b9094509250506040860135612335816122b2565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561237b5761237b612343565b60405290565b604051606081016001600160401b038111828210171561237b5761237b612343565b604051601f8201601f191681016001600160401b03811182821017156123cb576123cb612343565b604052919050565b60006001600160401b038211156123ec576123ec612343565b50601f01601f191660200190565b600082601f83011261240b57600080fd5b813561241e612419826123d3565b6123a3565b81815284602083860101111561243357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a03121561246b57600080fd5b87356001600160401b038082111561248257600080fd5b61248e8b838c016123fa565b985060208a013591506124a0826120c0565b9096506040890135906124b282612122565b9095506060890135906124c4826120c0565b909450608089013590808211156124da57600080fd5b506124e78a828b0161226e565b90945092505060a08801356124fb816122b2565b8091505092959891949750929550565b6000806040838503121561251e57600080fd5b50508035926020909101359150565b60006020828403121561253f57600080fd5b81356001600160401b0381111561255557600080fd5b612561848285016123fa565b949350505050565b6000806040838503121561257c57600080fd5b82356001600160401b0381111561259257600080fd5b61259e858286016123fa565b92505060208301356120fa81612122565b60008060008060008060008060e0898b0312156125cb57600080fd5b88356001600160401b03808211156125e257600080fd5b6125ee8c838d016123fa565b995060208b01359150612600826120c0565b90975060408a01359061261282612122565b90965060608a0135955060808a01359061262b826120c0565b90945060a08a0135908082111561264157600080fd5b5061264e8b828c0161226e565b90945092505060c0890135612662816122b2565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f612673565b6000602082840312156126ae57600080fd5b8151610e5681612122565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006126f66060830186886126b9565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561274c57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127a957833561278c816120c0565b6001600160a01b0316815292810192600192909201918101612779565b861515604087015293506127bc92505050565b9695505050505050565b60005b838110156127e15781810151838201526020016127c9565b50506000910152565b600081518084526128028160208601602086016127c6565b601f01601f19169290920160200192915050565b602081526000610e5660208301846127ea565b6000612837612419846123d3565b905082815283838301111561284b57600080fd5b610e568360208301846127c6565b60006080828403121561286b57600080fd5b604051608081018181106001600160401b038211171561288d5761288d612343565b806040525080915082516128a0816120c0565b815260208301516128b0816120c0565b602082015260408301516128c381612122565b604082015260608301516128d6816122b2565b6060919091015292915050565b600060208083850312156128f657600080fd5b82516001600160401b038082111561290d57600080fd5b9084019060a0828703121561292157600080fd5b612929612359565b82518281111561293857600080fd5b83016060818903121561294a57600080fd5b612952612381565b815160ff8116811461296357600080fd5b8152818601518682015260408201518481111561297f57600080fd5b82019350601f8401891361299257600080fd5b6129a0898551888701612829565b60408201528252506129b487848601612859565b848201528094505050505092915050565b6080815260006129d860808301876127ea565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a1157600080fd5b8151610e56816122b2565b604081526000612a2f60408301856127ea565b90506001600160401b03831660208301529392505050565b600060408284031215612a5957600080fd5b612a61612359565b9050815181526020820151602082015292915050565b60008060808385031215612a8a57600080fd5b612a948484612a47565b9150612aa38460408501612a47565b90509250929050565b8082018082111561073f5761073f612673565b81835260006020808501808196508560051b810191508460005b87811015612b435782840389528135601e19883603018112612afa57600080fd5b870185810190356001600160401b03811115612b1557600080fd5b803603821315612b2457600080fd5b612b2f8682846126b9565b9a87019a9550505090840190600101612ad9565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612b999083018587612abf565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612bfb81602a8501602088016127c6565b660103b30b63ab2960cd1b602a918401918201528351612c228160318401602088016127c6565b01603101949350505050565b85815260a060208201526000612c4760a08301876127ea565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612c8c57600080fd5b8251612c9781612122565b6020939093015192949293505050565b608081526000612cba60808301876127ea565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d178160178501602088016127c6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d488160288401602088016127c6565b01602801949350505050565b60008251612d668184602087016127c6565b9190910192915050565b838152604060208201526000612d8a604083018486612abf565b95945050505050565b60006020808385031215612da657600080fd5b82516001600160401b0380821115612dbd57600080fd5b818501915085601f830112612dd157600080fd5b815181811115612de357612de3612343565b8060051b612df28582016123a3565b9182528381018501918581019089841115612e0c57600080fd5b86860192505b83831015612e5d57825185811115612e2a5760008081fd5b8601603f81018b13612e3c5760008081fd5b612e4d8b8983015160408401612829565b8352509186019190860190612e12565b9998505050505050505050565b60008251612e7c8184602087016127c6565b63173937b760e11b920191825250600401919050565b6001600160a01b0383168152604060208201819052600090612561908301846127ea565b600060208284031215612ec857600080fd5b5051919050565b808202811582820484141761073f5761073f612673565b600081612ef557612ef5612673565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa264697066735822122006f996c081232038f43c5a1b7c3f11015820d9739a2a8d4b25e938ce2da8ea5764736f6c63430008150033", - "deployer": "0x0F68eDBE14C8f68481771016d7E2871d6a35DE11", + "deployedBytecode": "0x6080604052600436106102255760003560e01c80638ca3d18311610123578063cb80fe2f116100ab578063f0f442601161006f578063f0f4426014610668578063f14fcbc814610688578063f5b541a6146106a8578063fb021939146106dc578063fca513a8146106fc57600080fd5b8063cb80fe2f146105d3578063d547741f146105e6578063db9bf5ed14610606578063e4214b4614610626578063e63ab1e91461064657600080fd5b8063a217fddf116100f2578063a217fddf1461053e578063aeb8ce9b14610553578063b24b17b014610573578063c078f16a14610593578063ca15c873146105b357600080fd5b80638ca3d183146104cb5780639010d07c146104de57806391d14854146104fe5780639791c0971461051e57600080fd5b80633b6c2ea3116101b15780635c975abb116101755780635c975abb1461044057806364c65705146104585780636df99353146104785780638456cb59146104985780638c843314146104ad57600080fd5b80633b6c2ea31461039d5780633f4ba83a146103e357806342c20288146103f8578063530e784f1461040d5780635a7051691461042d57600080fd5b8063248a9ca3116101f8578063248a9ca3146102d857806329aa4f51146103165780632f2ff15d1461033d57806336568abe1461035f5780633b19e84a1461037f57600080fd5b806301ffc9a71461022a5780631321889f1461025f578063224b04de14610288578063237a78fb146102ba575b600080fd5b34801561023657600080fd5b5061024a6102453660046120d0565b61071a565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b506036546037545b60408051928352602083019190915201610256565b34801561029457600080fd5b50603b546001600160a01b03165b6040516001600160a01b039091168152602001610256565b3480156102c657600080fd5b50603d546001600160a01b03166102a2565b3480156102e457600080fd5b506103086102f33660046120fa565b60009081526002602052604090206001015490565b604051908152602001610256565b34801561032257600080fd5b5061032b600381565b60405160ff9091168152602001610256565b34801561034957600080fd5b5061035d610358366004612128565b610745565b005b34801561036b57600080fd5b5061035d61037a366004612128565b61076f565b34801561038b57600080fd5b506039546001600160a01b03166102a2565b3480156103a957600080fd5b5061024a6103b8366004612128565b6000918252603f602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156103ef57600080fd5b5061035d6107f2565b34801561040457600080fd5b50603854610308565b34801561041957600080fd5b5061035d610428366004612158565b610815565b61035d61043b36600461218a565b610829565b34801561044c57600080fd5b5060005460ff1661024a565b34801561046457600080fd5b5061035d61047336600461220c565b6109d8565b34801561048457600080fd5b5061035d610493366004612313565b610b80565b3480156104a457600080fd5b5061035d610cb9565b3480156104b957600080fd5b50603a546001600160a01b03166102a2565b61035d6104d93660046124a3565b610cd9565b3480156104ea57600080fd5b506102a26104f936600461255e565b610e3a565b34801561050a57600080fd5b5061024a610519366004612128565b610e59565b34801561052a57600080fd5b5061024a610539366004612580565b610e84565b34801561054a57600080fd5b50610308600081565b34801561055f57600080fd5b5061024a61056e366004612580565b610f12565b34801561057f57600080fd5b5061027361058e3660046125bc565b610f9d565b34801561059f57600080fd5b5061035d6105ae3660046120fa565b61104d565b3480156105bf57600080fd5b506103086105ce3660046120fa565b611061565b61035d6105e1366004612602565b611078565b3480156105f257600080fd5b5061035d610601366004612128565b611184565b34801561061257600080fd5b50610308610621366004612602565b6111a9565b34801561063257600080fd5b5061035d61064136600461255e565b611235565b34801561065257600080fd5b50610308600080516020612f6783398151915281565b34801561067457600080fd5b5061035d610683366004612158565b61124a565b34801561069457600080fd5b5061035d6106a33660046120fa565b61125e565b3480156106b457600080fd5b506103087f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b3480156106e857600080fd5b506103086106f7366004612580565b6112b7565b34801561070857600080fd5b50603c546001600160a01b03166102a2565b60006001600160e01b03198216635a05180f60e01b148061073f575061073f826112f4565b92915050565b60008281526002602052604090206001015461076081611329565b61076a8383611333565b505050565b6001600160a01b03811633146107e45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107ee8282611355565b5050565b600080516020612f6783398151915261080a81611329565b610812611377565b50565b600061082081611329565b6107ee826113c9565b610831611420565b610839611468565b600061087c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869250610f9d915050565b915050803410156108a05760405163044044a560e21b815260040160405180910390fd5b60006108ac82346126dc565b905060006108ef86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112b792505050565b603a54604051635569f33d60e01b8152600481018390526001600160401b03871660248201529192506000916001600160a01b0390911690635569f33d906044016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097391906126ef565b9050817fda0eda2cd32a098c8b27ed6a56aeb5c332b8abb98491f4357ea58e118b724c6d888887856040516109ab9493929190612735565b60405180910390a282156109c3576109c333846114c1565b6109cb611526565b5050505061076a60018055565b60005462010000900460ff16158080156109fd5750600054600161010090910460ff16105b80610a1d5750303b158015610a1d575060005460ff610100909104166001145b610a805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107db565b6000805461ff0019166101001790558015610aa7576000805462ff00001916620100001790555b610abf600080516020612f678339815191528b61153c565b610aca60008c61153c565b610ad3836113c9565b610adc86611546565b610ae6878961157d565b610aef89611607565b603a80546001600160a01b038088166001600160a01b031992831617909255603b8054878416908316179055603d8054928516929091169190911790558015610b73576000805462ff000019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610baa81611329565b84801580610bb85750808414155b15610bd657604051634ec4810560e11b815260040160405180910390fd5b60005b81811015610c665783603f60008a8a85818110610bf857610bf8612769565b9050602002013581526020019081526020016000206000888885818110610c2157610c21612769565b9050602002016020810190610c369190612158565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610bd9565b50336001600160a01b03167fb04cd4173c4030a0f2bf2acabc9484f9014ecf5654be55afb48f3694c0804e3b8888888888604051610ca895949392919061277f565b60405180910390a250505050505050565b600080516020612f67833981519152610cd181611329565b610812611678565b610ce1611420565b610ce9611468565b86610cf3816116b5565b610cfc88610f12565b610d1b57876040516308eee0fd60e31b81526004016107db9190612869565b6000610d26896112b7565b603a546040516303e9e60960e01b8152600481018390529192506000916001600160a01b03909116906303e9e60990602401600060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9d9190810190612936565b602090810151606001516000848152603f835260408082206001600160a01b038e168352909352919091205490915060ff16811580610dda575080155b15610e00578a8a8383604051631fc5717160e01b81526004016107db9493929190612a18565b600080610e0d8d8c6116dd565b91509150610e228d8d8d8d8d8d8d8989611735565b505050505050610e3160018055565b50505050505050565b6000828152600360205260408120610e52908361185f565b9392505050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006003610e918361186b565b1015801561073f5750603b546040516303f6911960e21b81526001600160a01b0390911690630fda446490610eca908590600401612869565b602060405180830381865afa158015610ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612a52565b1592915050565b6000610f1d82610e84565b801561073f5750603a546001600160a01b03166396e494e8610f3e846112b7565b6040518263ffffffff1660e01b8152600401610f5c91815260200190565b602060405180830381865afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f9190612a52565b603c5460405163f4651f4960e01b81526000918291829182916001600160a01b039091169063f4651f4990610fd89089908990600401612a6f565b608060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612aca565b8051825192945090925061102c91612aff565b9350806020015182602001516110429190612aff565b925050509250929050565b600061105881611329565b6107ee82611546565b600081815260036020526040812061073f90611959565b611080611420565b611088611468565b6000611093896112b7565b603a546040516303e9e60960e01b8152600481018390529192506001600160a01b0316906303e9e60990602401600060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111059190810190612936565b60200151606001511561112d57886040516331597a5760e21b81526004016107db9190612869565b600061113f8a8a8a8a8a8a8a8a6111a9565b905061114b8882611963565b6000806111588c8b6116dd565b9150915061116d8c8c8c8b8b8b8b8989611735565b5050505061117a60018055565b5050505050505050565b60008281526002602052604090206001015461119f81611329565b61076a8383611355565b6000886111b5816116b5565b83158015906111cb57506001600160a01b038616155b156111e9576040516334fd817160e21b815260040160405180910390fd5b6111f28a6112b7565b89898989898989604051602001611210989796959493929190612ba3565b6040516020818303038152906040528051906020012091505098975050505050505050565b600061124081611329565b61076a838361157d565b600061125581611329565b6107ee82611607565b611266611420565b6037546000828152603e6020526040902054429161128391612aff565b106112a457604051630a059d7160e01b8152600481018290526024016107db565b6000908152603e60205260409020429055565b600061073f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d688836000918252805160209182012090526040902090565b60006001600160e01b03198216637965db0b60e01b148061073f57506301ffc9a760e01b6001600160e01b031983161461073f565b6108128133611a14565b61133d8282611a47565b600082815260036020526040902061076a9082611acd565b61135f8282611ae2565b600082815260036020526040902061076a9082611b49565b61137f611b5e565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603c80546001600160a01b0319166001600160a01b03831690811790915560405190815233907fa0e5780c6b121c723ec81de517e849c838390affbdc0a70680a3065e47ff3655906020015b60405180910390a250565b60005460ff16156114665760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107db565b565b6002600154036114ba5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107db565b6002600155565b60006114cd8383611ba7565b90508061076a576114e6836001600160a01b0316611c1d565b6114ef83611c33565b604051602001611500929190612c03565b60408051601f198184030181529082905262461bcd60e51b82526107db91600401612869565b603954611466906001600160a01b0316476114c1565b6107ee8282611333565b603881905560405181815233907f59dadbf6542974405b3c262294675f8dd6fb933e6e6556b04b41aaac6e42352c90602001611415565b4281111561159e57604051630b4319e560e21b815260040160405180910390fd5b8181116115be576040516307cb550760e31b815260040160405180910390fd5b60368290556037819055604080518381526020810183905233917f26a34e9441e83658dfe0e99d79186a1f7cb28c0867d3caddf5cd8b79844adf8f910160405180910390a25050565b6001600160a01b03811661162e5760405163e99d5ac560e01b815260040160405180910390fd5b603980546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b611680611420565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ac3390565b6116be81610f12565b61081257806040516308eee0fd60e31b81526004016107db9190612869565b6000806116ea8484610f9d565b9092509050348111156117105760405163044044a560e21b815260040160405180910390fd5b348181039082146117255761172533826114c1565b5061172e611526565b9250929050565b600080603a60009054906101000a90046001600160a01b03166001600160a01b0316630570891f7fba69923fa107dbf5a25a073a10b7c9216ae39fbadc95dc891d460d9ae315d6888d8b8e8e6040518663ffffffff1660e01b81526004016117a1959493929190612c81565b60408051808303816000875af11580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612ccc565b909250905085156117fa576117fa88828989611c4a565b841561180a5761180a8b8b611cc8565b896001600160a01b0316817f8b0e0cd1a643dbca06e60f7e03e5ff3c4e72b78e1c9842b5c3a29ad3ce8d384b8d86888760405161184a9493929190612cfa565b60405180910390a35050505050505050505050565b6000610e528383611d5f565b600080600080845190505b8083101561195157600085848151811061189257611892612769565b01602001516001600160f81b0319169050600160ff1b8110156118ba57600184019350611945565b600760fd1b6001600160f81b0319821610156118db57600284019350611945565b600f60fc1b6001600160f81b0319821610156118fc57600384019350611945565b601f60fb1b6001600160f81b03198216101561191d57600484019350611945565b603f60fa1b6001600160f81b03198216101561193e57600584019350611945565b6006840193505b50600190910190611876565b509392505050565b600061073f825490565b603854826001600160401b0316101561199a576040516378a3dfc160e11b81526001600160401b03831660048201526024016107db565b6000818152603e60205260408120546119b390426126dc565b90506036548110156119db57604051635320bcf960e01b8152600481018390526024016107db565b806037541015611a015760405163cb7690d760e01b8152600481018390526024016107db565b506000908152603e602052604081205550565b611a1e8282610e59565b6107ee57611a2b81611c1d565b611a36836020611d89565b604051602001611500929190612d32565b611a518282610e59565b6107ee5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610e52836001600160a01b038416611f24565b611aec8282610e59565b156107ee5760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e52836001600160a01b038416611f73565b60005460ff166114665760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107db565b604080516000808252602082019092526001600160a01b038416908390604051611bd19190612da7565b60006040518083038185875af1925050503d8060008114611c0e576040519150601f19603f3d011682016040523d82523d6000602084013e611c13565b606091505b5090949350505050565b606061073f6001600160a01b0383166014611d89565b606061073f82611c4284612066565b600101611d89565b60405163e32954eb60e01b81526001600160a01b0385169063e32954eb90611c7a90869086908690600401612dc3565b6000604051808303816000875af1158015611c99573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cc19190810190612de6565b5050505050565b603d546040516001600160a01b039091169063c9119941908390611cf0908690602001612ebd565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611d1c929190612ee5565b6020604051808303816000875af1158015611d3b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612f09565b6000826000018281548110611d7657611d76612769565b9060005260206000200154905092915050565b60606000611d98836002612f22565b611da3906002612aff565b6001600160401b03811115611dba57611dba612396565b6040519080825280601f01601f191660200182016040528015611de4576020820181803683370190505b509050600360fc1b81600081518110611dff57611dff612769565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e2e57611e2e612769565b60200101906001600160f81b031916908160001a9053506000611e52846002612f22565b611e5d906001612aff565b90505b6001811115611ed5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e9157611e91612769565b1a60f81b828281518110611ea757611ea7612769565b60200101906001600160f81b031916908160001a90535060049490941c93611ece81612f39565b9050611e60565b508315610e525760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107db565b6000818152600183016020526040812054611f6b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561073f565b50600061073f565b6000818152600183016020526040812054801561205c576000611f976001836126dc565b8554909150600090611fab906001906126dc565b9050818114612010576000866000018281548110611fcb57611fcb612769565b9060005260206000200154905080876000018481548110611fee57611fee612769565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061202157612021612f50565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061073f565b600091505061073f565b600080608083901c1561207e5760809290921c916010015b604083901c156120935760409290921c916008015b602083901c156120a85760209290921c916004015b601083901c156120bd5760109290921c916002015b600883901c1561073f5760010192915050565b6000602082840312156120e257600080fd5b81356001600160e01b031981168114610e5257600080fd5b60006020828403121561210c57600080fd5b5035919050565b6001600160a01b038116811461081257600080fd5b6000806040838503121561213b57600080fd5b82359150602083013561214d81612113565b809150509250929050565b60006020828403121561216a57600080fd5b8135610e5281612113565b6001600160401b038116811461081257600080fd5b60008060006040848603121561219f57600080fd5b83356001600160401b03808211156121b657600080fd5b818601915086601f8301126121ca57600080fd5b8135818111156121d957600080fd5b8760208285010111156121eb57600080fd5b6020928301955093505084013561220181612175565b809150509250925092565b6000806000806000806000806000806101408b8d03121561222c57600080fd5b8a3561223781612113565b995060208b013561224781612113565b985060408b013561225781612113565b975060608b0135965060808b0135955060a08b0135945060c08b013561227c81612113565b935060e08b013561228c81612113565b92506101008b013561229d81612113565b91506101208b01356122ae81612113565b809150509295989b9194979a5092959850565b60008083601f8401126122d357600080fd5b5081356001600160401b038111156122ea57600080fd5b6020830191508360208260051b850101111561172e57600080fd5b801515811461081257600080fd5b60008060008060006060868803121561232b57600080fd5b85356001600160401b038082111561234257600080fd5b61234e89838a016122c1565b9097509550602088013591508082111561236757600080fd5b50612374888289016122c1565b909450925050604086013561238881612305565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156123ce576123ce612396565b60405290565b604051606081016001600160401b03811182821017156123ce576123ce612396565b604051601f8201601f191681016001600160401b038111828210171561241e5761241e612396565b604052919050565b60006001600160401b0382111561243f5761243f612396565b50601f01601f191660200190565b600082601f83011261245e57600080fd5b813561247161246c82612426565b6123f6565b81815284602083860101111561248657600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600060c0888a0312156124be57600080fd5b87356001600160401b03808211156124d557600080fd5b6124e18b838c0161244d565b985060208a013591506124f382612113565b90965060408901359061250582612175565b90955060608901359061251782612113565b9094506080890135908082111561252d57600080fd5b5061253a8a828b016122c1565b90945092505060a088013561254e81612305565b8091505092959891949750929550565b6000806040838503121561257157600080fd5b50508035926020909101359150565b60006020828403121561259257600080fd5b81356001600160401b038111156125a857600080fd5b6125b48482850161244d565b949350505050565b600080604083850312156125cf57600080fd5b82356001600160401b038111156125e557600080fd5b6125f18582860161244d565b925050602083013561214d81612175565b60008060008060008060008060e0898b03121561261e57600080fd5b88356001600160401b038082111561263557600080fd5b6126418c838d0161244d565b995060208b0135915061265382612113565b90975060408a01359061266582612175565b90965060608a0135955060808a01359061267e82612113565b90945060a08a0135908082111561269457600080fd5b506126a18b828c016122c1565b90945092505060c08901356126b581612305565b809150509295985092959890939650565b634e487b7160e01b600052601160045260246000fd5b8181038181111561073f5761073f6126c6565b60006020828403121561270157600080fd5b8151610e5281612175565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152600061274960608301868861270c565b90508360208301526001600160401b038316604083015295945050505050565b634e487b7160e01b600052603260045260246000fd5b6060808252810185905260006001600160fb1b0386111561279f57600080fd5b8560051b8088608085013760809083018381038201602080860191909152918101869052869160009160a0015b878310156127fc5783356127df81612113565b6001600160a01b03168152928101926001929092019181016127cc565b8615156040870152935061280f92505050565b9695505050505050565b60005b8381101561283457818101518382015260200161281c565b50506000910152565b60008151808452612855816020860160208601612819565b601f01601f19169290920160200192915050565b602081526000610e52602083018461283d565b600061288a61246c84612426565b905082815283838301111561289e57600080fd5b610e52836020830184612819565b6000608082840312156128be57600080fd5b604051608081018181106001600160401b03821117156128e0576128e0612396565b806040525080915082516128f381612113565b8152602083015161290381612113565b6020820152604083015161291681612175565b6040820152606083015161292981612305565b6060919091015292915050565b6000602080838503121561294957600080fd5b82516001600160401b038082111561296057600080fd5b9084019060a0828703121561297457600080fd5b61297c6123ac565b82518281111561298b57600080fd5b83016060818903121561299d57600080fd5b6129a56123d4565b815160ff811681146129b657600080fd5b815281860151868201526040820151848111156129d257600080fd5b82019350601f840189136129e557600080fd5b6129f389855188870161287c565b6040820152825250612a07878486016128ac565b848201528094505050505092915050565b608081526000612a2b608083018761283d565b6001600160a01b039590951660208301525091151560408301521515606090910152919050565b600060208284031215612a6457600080fd5b8151610e5281612305565b604081526000612a82604083018561283d565b90506001600160401b03831660208301529392505050565b600060408284031215612aac57600080fd5b612ab46123ac565b9050815181526020820151602082015292915050565b60008060808385031215612add57600080fd5b612ae78484612a9a565b9150612af68460408501612a9a565b90509250929050565b8082018082111561073f5761073f6126c6565b81835260006020808501808196508560051b810191508460005b87811015612b965782840389528135601e19883603018112612b4d57600080fd5b870185810190356001600160401b03811115612b6857600080fd5b803603821315612b7757600080fd5b612b8286828461270c565b9a87019a9550505090840190600101612b2c565b5091979650505050505050565b8881526001600160a01b0388811660208301526001600160401b0388166040830152606082018790528516608082015260e060a08201819052600090612bec9083018587612b12565b905082151560c08301529998505050505050505050565b7f5472616e7366657248656c7065723a20636f756c64206e6f74207472616e7366815269032b9102927a7103a37960b51b602082015260008351612c4e81602a850160208801612819565b660103b30b63ab2960cd1b602a918401918201528351612c75816031840160208801612819565b01603101949350505050565b85815260a060208201526000612c9a60a083018761283d565b6001600160a01b0395861660408401529390941660608201526001600160401b03919091166080909101529392505050565b60008060408385031215612cdf57600080fd5b8251612cea81612175565b6020939093015192949293505050565b608081526000612d0d608083018761283d565b60208301959095525060408101929092526001600160401b0316606090910152919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612d6a816017850160208801612819565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d9b816028840160208801612819565b01602801949350505050565b60008251612db9818460208701612819565b9190910192915050565b838152604060208201526000612ddd604083018486612b12565b95945050505050565b60006020808385031215612df957600080fd5b82516001600160401b0380821115612e1057600080fd5b818501915085601f830112612e2457600080fd5b815181811115612e3657612e36612396565b8060051b612e458582016123f6565b9182528381018501918581019089841115612e5f57600080fd5b86860192505b83831015612eb057825185811115612e7d5760008081fd5b8601603f81018b13612e8f5760008081fd5b612ea08b898301516040840161287c565b8352509186019190860190612e65565b9998505050505050505050565b60008251612ecf818460208701612819565b63173937b760e11b920191825250600401919050565b6001600160a01b03831681526040602082018190526000906125b49083018461283d565b600060208284031215612f1b57600080fd5b5051919050565b808202811582820484141761073f5761073f6126c6565b600081612f4857612f486126c6565b506000190190565b634e487b7160e01b600052603160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa26469706673582212203a109c3a44f7a0139823c421a40975bf8029ef66d689d4458e4d45cf8a5dbf8264736f6c63430008150033", + "deployer": "0x4d58Ea7231c394d5804e8B06B1365915f906E27F", "devdoc": { "version": 1, "kind": "dev", @@ -15954,6 +1409,9 @@ "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." + }, "Unpaused(address)": { "details": "Emitted when the pause is lifted by `account`." } @@ -16009,6 +1467,11 @@ "details": "Error: The requested name is not available for registration." } ], + "NullAddress()": [ + { + "details": "Thrown when treasury address is set to null" + } + ], "ResolverRequiredWhenDataSupplied()": [ { "details": "Error: A resolver is required when additional data is supplied during registration." @@ -16028,13 +1491,12 @@ "title": "RONRegistrarController" }, "isFoundry": true, - "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"CommitmentTooNew\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"CommitmentTooOld\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"DurationTooShort\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"requestOwner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"nameProtected\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerWhitelisted\",\"type\":\"bool\"}],\"name\":\"ErrInvalidRegisterProtectedName\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ErrRequestedForProtectedName\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxCommitmentAgeTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxCommitmentAgeTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NameNotAvailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverRequiredWhenDataSupplied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"UnexpiredCommitmentExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"name\":\"CommitmentAgeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract INSDomainPrice\",\"name\":\"newDomainPrice\",\"type\":\"address\"}],\"name\":\"DomainPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"MinRegistrationDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ronPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"usdPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"NameRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"NameRenewed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"ProtectedNamesWhitelisted\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_DOMAIN_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"bulkWhitelistProtectedNames\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"computeCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"computeId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommitmentAgeRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinRegistrationDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNameChecker\",\"outputs\":[{\"internalType\":\"contract INameChecker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPriceOracle\",\"outputs\":[{\"internalType\":\"contract INSDomainPrice\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRNSUnified\",\"outputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReverseRegistrar\",\"outputs\":[{\"internalType\":\"contract INSReverseRegistrar\",\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getWhitelistProtectedNameStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"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\":\"pauser\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minRegistrationDuration\",\"type\":\"uint256\"},{\"internalType\":\"contract INSUnified\",\"name\":\"rnsUnified\",\"type\":\"address\"},{\"internalType\":\"contract INameChecker\",\"name\":\"nameChecker\",\"type\":\"address\"},{\"internalType\":\"contract INSDomainPrice\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract INSReverseRegistrar\",\"name\":\"reverseRegistrar\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"registerProtectedName\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"renew\",\"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\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"rentPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"usdPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ronPrice\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"name\":\"setCommitmentAge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"setMinRegistrationDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract INSDomainPrice\",\"name\":\"priceOracle\",\"type\":\"address\"}],\"name\":\"setPriceOracle\",\"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\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"valid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A registrar controller for registering and renewing names at fixed cost.\",\"errors\":{\"CommitmentTooNew(bytes32)\":[{\"details\":\"Error: The provided commitment timestamp is too new for registration.\"}],\"CommitmentTooOld(bytes32)\":[{\"details\":\"Error: The provided commitment timestamp is too old for registration.\"}],\"DurationTooShort(uint64)\":[{\"details\":\"Error: The requested duration for registration is too short.\"}],\"ErrInvalidRegisterProtectedName(string,address,bool,bool)\":[{\"details\":\"Thrown when received invalid params for registering protected name\"}],\"ErrRequestedForProtectedName(string)\":[{\"details\":\"Thrown when some one requests for protected names\"}],\"InsufficientValue()\":[{\"details\":\"Error: Insufficient value (RON) provided for registration.\"}],\"InvalidArrayLength()\":[{\"details\":\"Thrown when received invalid array length\"}],\"MaxCommitmentAgeTooHigh()\":[{\"details\":\"Error: The maximum commitment age is set too high.\"}],\"MaxCommitmentAgeTooLow()\":[{\"details\":\"Error: The maximum commitment age is set too low.\"}],\"NameNotAvailable(string)\":[{\"details\":\"Error: The requested name is not available for registration.\"}],\"ResolverRequiredWhenDataSupplied()\":[{\"details\":\"Error: A resolver is required when additional data is supplied during registration.\"}],\"Unauthorized(bytes32)\":[{\"details\":\"Error: The sender is not authorized for the given RNS node.\"}],\"UnexpiredCommitmentExists(bytes32)\":[{\"details\":\"Error: An unexpired commitment already exists for the given commitment.\"}]},\"events\":{\"CommitmentAgeUpdated(address,uint256,uint256)\":{\"details\":\"Emitted when the commitment age range is updated.\",\"params\":{\"maxCommitmentAge\":\"The new maximum commitment age in seconds.\",\"minCommitmentAge\":\"The new minimum commitment age in seconds.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"DomainPriceUpdated(address,address)\":{\"details\":\"Emitted when RNSDomainPrice contract is updated.\",\"params\":{\"newDomainPrice\":\"The new duration domain price contract.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MinRegistrationDurationUpdated(address,uint256)\":{\"details\":\"Emitted when the min registration duration is updated.\",\"params\":{\"duration\":\"The new duration in seconds.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"NameRegistered(string,uint256,address,uint256,uint256,uint64)\":{\"details\":\"Emitted when a new name is successfully registered.\",\"params\":{\"expires\":\"The expiration timestamp of the registration.\",\"id\":\"The namehash of the registered name.\",\"name\":\"The registered name.\",\"owner\":\"The owner of the registered name.\",\"ronPrice\":\"The cost of the registration in RON.\",\"usdPrice\":\"The cost of the registration in USD.\"}},\"NameRenewed(string,uint256,uint256,uint64)\":{\"details\":\"Emitted when a name is renewed.\",\"params\":{\"cost\":\"The cost of renewal.\",\"expires\":\"The new expiration timestamp after renewal.\",\"id\":\"The namehash of the registered name.\",\"name\":\"The renewed name.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProtectedNamesWhitelisted(address,uint256[],address[],bool)\":{\"details\":\"Emitted the whitelist status is updated for the owners of the protected names.\",\"params\":{\"operator\":\"The address of the operator who triggered the update.\"}},\"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`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"available(string)\":{\"details\":\"Checks if a name is available for registration.\",\"params\":{\"name\":\"The name to check availability for.\"},\"returns\":{\"_0\":\"A boolean indicating whether the name is available.\"}},\"bulkWhitelistProtectedNames(uint256[],address[],bool)\":{\"details\":\"Bulk (de)whitelist for buying protected names. Requirements: - The method caller is contract operator. Emits an event {ProtectedNamesWhitelisted}.\"},\"commit(bytes32)\":{\"details\":\"Commits to a registration using the commitment hash.\",\"params\":{\"commitment\":\"The commitment hash.\"}},\"computeCommitment(string,address,uint64,bytes32,address,bytes[],bool)\":{\"details\":\"Generates the commitment hash for a registration.\",\"params\":{\"data\":\"Additional data associated with the registration.\",\"duration\":\"The duration of the registration.\",\"name\":\"The name to be registered.\",\"owner\":\"The owner of the name.\",\"resolver\":\"The resolver contract address.\",\"reverseRecord\":\"Whether to use reverse record for additional data.\",\"secret\":\"The secret used for the commitment.\"},\"returns\":{\"_0\":\"The commitment hash.\"}},\"computeId(string)\":{\"details\":\"Calculate the corresponding id given RON_ID and name.\"},\"getCommitmentAgeRange()\":{\"details\":\"Returns the range of commitment ages allowed.\"},\"getMinRegistrationDuration()\":{\"details\":\"Returns the minimum registration duration.\"},\"getNameChecker()\":{\"details\":\"Returns the INameChecker contract associated with this controller.\"},\"getPriceOracle()\":{\"details\":\"Returns the INSDomainPrice contract associated with this controller.\"},\"getRNSUnified()\":{\"details\":\"Returns the INSUnified contract associated with this controller.\"},\"getReverseRegistrar()\":{\"details\":\"Returns the IReverseRegistrar contract associated with this controller.\"},\"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 address.\"},\"getWhitelistProtectedNameStatus(uint256,address)\":{\"details\":\"Returns the whitelist status for registering protected name.\"},\"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`.\"},\"pause()\":{\"details\":\"Pauses the registrar controller's functionality. Requirements: - The caller must have the admin role.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"register(string,address,uint64,bytes32,address,bytes[],bool)\":{\"details\":\"Registers a new name.\",\"params\":{\"data\":\"Additional data associated with the registration.\",\"duration\":\"The duration of the registration.\",\"name\":\"The name to be registered.\",\"owner\":\"The owner of the name.\",\"resolver\":\"The resolver contract address.\",\"reverseRecord\":\"Whether to use reverse record for additional data.\",\"secret\":\"The secret used for the commitment.\"}},\"registerProtectedName(string,address,uint64,address,bytes[],bool)\":{\"details\":\"Registers a protected name. Requirements: - The owner is whitelisted for registering.\"},\"renew(string,uint64)\":{\"details\":\"Renews an existing name registration.\",\"params\":{\"duration\":\"The duration of the renewal.\",\"name\":\"The name to be renewed.\"}},\"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.\"},\"rentPrice(string,uint64)\":{\"details\":\"Retrieves the rent price for a given name and duration.\",\"params\":{\"duration\":\"The duration of the rent.\",\"name\":\"The name for which to calculate the rent price.\"},\"returns\":{\"ronPrice\":\"rent price in ron.\",\"usdPrice\":\"rent price in usd.\"}},\"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.\"},\"setCommitmentAge(uint256,uint256)\":{\"details\":\"Sets the minimum and maximum commitment ages. Requirements: - Caller must have the DEFAULT_ADMIN_ROLE. - The `maxCommitmentAge` must be less than or equal to the current block timestamp. - The `maxCommitmentAge` must be greater than the `minCommitmentAge`. Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\",\"params\":{\"maxCommitmentAge\":\"The maximum commitment age in seconds.\",\"minCommitmentAge\":\"The minimum commitment age in seconds.\"}},\"setMinRegistrationDuration(uint256)\":{\"details\":\"Updates min registration duration. Requirements: - The caller must have the admin role.\"},\"setPriceOracle(address)\":{\"details\":\"Updates price oracle address. Requirements: - The caller must have the admin role.\"},\"setTreasury(address)\":{\"details\":\"Updates treasury address. Requirements: - The caller must have the admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unpause()\":{\"details\":\"Unpauses the registrar controller's functionality. Requirements: - The caller must have the admin role.\"},\"valid(string)\":{\"details\":\"Checks if a name is valid.\",\"params\":{\"name\":\"The name to check validity for.\"},\"returns\":{\"_0\":\"A boolean indicating whether the name is available.\"}}},\"stateVariables\":{\"MIN_DOMAIN_LENGTH\":{\"details\":\"The minimum domain name's length\"},\"OPERATOR_ROLE\":{\"details\":\"Returns the operator role.\"},\"PAUSER_ROLE\":{\"details\":\"Returns the role identifier for the pauser role.\"},\"____gap\":{\"details\":\"Gap for upgradeability.\"},\"_committedAt\":{\"details\":\"Mapping from commitment hash => timestamp that commitment made.\"},\"_maxCommitmentAge\":{\"details\":\"Maximum duration between commitment and registration in second(s).\"},\"_minCommitmentAge\":{\"details\":\"Minimum duration between commitment and registration in second(s).\"},\"_minRegistrationDuration\":{\"details\":\"Min registration duration\"},\"_nameChecker\":{\"details\":\"The namechecker contract.\"},\"_priceOracle\":{\"details\":\"The price oracle.\"},\"_protectedNamesWhitelisted\":{\"details\":\"Mapping id => owner => flag indicating whether the owner is whitelisted to buy protected name\"},\"_reverseRegistrar\":{\"details\":\"The reverse registrar contract.\"},\"_rnsUnified\":{\"details\":\"The rns unified contract.\"},\"_treasury\":{\"details\":\"The treasury address.\"}},\"title\":\"RONRegistrarController\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Customized version of ETHRegistrarController: https://github.com/ensdomains/ens-contracts/blob/45455f1229556ed4f416ef7225d4caea2c1bc0b5/contracts/ethregistrar/ETHRegistrarController.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RONRegistrarController.sol\":\"RONRegistrarController\"},\"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/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n /**\\n * @dev Emitted when the pause is triggered by `account`.\\n */\\n event Paused(address account);\\n\\n /**\\n * @dev Emitted when the pause is lifted by `account`.\\n */\\n event Unpaused(address account);\\n\\n bool private _paused;\\n\\n /**\\n * @dev Initializes the contract in unpaused state.\\n */\\n constructor() {\\n _paused = false;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is not paused.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n modifier whenNotPaused() {\\n _requireNotPaused();\\n _;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is paused.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n modifier whenPaused() {\\n _requirePaused();\\n _;\\n }\\n\\n /**\\n * @dev Returns true if the contract is paused, and false otherwise.\\n */\\n function paused() public view virtual returns (bool) {\\n return _paused;\\n }\\n\\n /**\\n * @dev Throws if the contract is paused.\\n */\\n function _requireNotPaused() internal view virtual {\\n require(!paused(), \\\"Pausable: paused\\\");\\n }\\n\\n /**\\n * @dev Throws if the contract is not paused.\\n */\\n function _requirePaused() internal view virtual {\\n require(paused(), \\\"Pausable: not paused\\\");\\n }\\n\\n /**\\n * @dev Triggers stopped state.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n function _pause() internal virtual whenNotPaused {\\n _paused = true;\\n emit Paused(_msgSender());\\n }\\n\\n /**\\n * @dev Returns to normal state.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n function _unpause() internal virtual whenPaused {\\n _paused = false;\\n emit Unpaused(_msgSender());\\n }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n // Booleans are more expensive than uint256 or any type that takes up a full\\n // word because each write operation emits an extra SLOAD to first read the\\n // slot's contents, replace the bits taken up by the boolean, and then write\\n // back. This is the compiler's defense against contract upgrades and\\n // pointer aliasing, and it cannot be disabled.\\n\\n // The values being non-zero value makes deployment a bit more expensive,\\n // but in exchange the refund on every call to nonReentrant will be lower in\\n // amount. Since refunds are capped to a percentage of the total\\n // transaction's gas, it is best to keep them low in cases like this one, to\\n // increase the likelihood of the full refund coming into effect.\\n uint256 private constant _NOT_ENTERED = 1;\\n uint256 private constant _ENTERED = 2;\\n\\n uint256 private _status;\\n\\n constructor() {\\n _status = _NOT_ENTERED;\\n }\\n\\n /**\\n * @dev Prevents a contract from calling itself, directly or indirectly.\\n * Calling a `nonReentrant` function from another `nonReentrant`\\n * function is not supported. It is possible to prevent this from happening\\n * by making the `nonReentrant` function external, and making it call a\\n * `private` function that does the actual work.\\n */\\n modifier nonReentrant() {\\n _nonReentrantBefore();\\n _;\\n _nonReentrantAfter();\\n }\\n\\n function _nonReentrantBefore() private {\\n // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n // Any calls to nonReentrant after this point will fail\\n _status = _ENTERED;\\n }\\n\\n function _nonReentrantAfter() private {\\n // By storing the original value once again, a refund is triggered (see\\n // https://eips.ethereum.org/EIPS/eip-2200)\\n _status = _NOT_ENTERED;\\n }\\n\\n /**\\n * @dev Returns true if the reentrancy guard is currently set to \\\"entered\\\", which indicates there is a\\n * `nonReentrant` function in the call stack.\\n */\\n function _reentrancyGuardEntered() internal view returns (bool) {\\n return _status == _ENTERED;\\n }\\n}\\n\",\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"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/SafeMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n// CAUTION\\n// This version of SafeMath should only be used with Solidity 0.8 or later,\\n// because it relies on the compiler's built in overflow checks.\\n\\n/**\\n * @dev Wrappers over Solidity's arithmetic operations.\\n *\\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\\n * now has built in overflow checking.\\n */\\nlibrary SafeMath {\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, reverting on\\n * overflow.\\n *\\n * Counterpart to Solidity's `+` operator.\\n *\\n * Requirements:\\n *\\n * - Addition cannot overflow.\\n */\\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a + b;\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, reverting on\\n * overflow (when the result is negative).\\n *\\n * Counterpart to Solidity's `-` operator.\\n *\\n * Requirements:\\n *\\n * - Subtraction cannot overflow.\\n */\\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a - b;\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, reverting on\\n * overflow.\\n *\\n * Counterpart to Solidity's `*` operator.\\n *\\n * Requirements:\\n *\\n * - Multiplication cannot overflow.\\n */\\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a * b;\\n }\\n\\n /**\\n * @dev Returns the integer division of two unsigned integers, reverting on\\n * division by zero. The result is rounded towards zero.\\n *\\n * Counterpart to Solidity's `/` operator.\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a / b;\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\\n * reverting when dividing by zero.\\n *\\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\\n * opcode (which leaves remaining gas untouched) while Solidity uses an\\n * invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a % b;\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\\n * overflow (when the result is negative).\\n *\\n * CAUTION: This function is deprecated because it requires allocating memory for the error\\n * message unnecessarily. For custom revert reasons use {trySub}.\\n *\\n * Counterpart to Solidity's `-` operator.\\n *\\n * Requirements:\\n *\\n * - Subtraction cannot overflow.\\n */\\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b <= a, errorMessage);\\n return a - b;\\n }\\n }\\n\\n /**\\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\\n * division by zero. The result is rounded towards zero.\\n *\\n * Counterpart to Solidity's `/` operator. Note: this function uses a\\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\\n * uses an invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b > 0, errorMessage);\\n return a / b;\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\\n * reverting with custom message when dividing by zero.\\n *\\n * CAUTION: This function is deprecated because it requires allocating memory for the error\\n * message unnecessarily. For custom revert reasons use {tryMod}.\\n *\\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\\n * opcode (which leaves remaining gas untouched) while Solidity uses an\\n * invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b > 0, errorMessage);\\n return a % b;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"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/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\"},\"lib/pyth-sdk-solidity/IPyth.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\nimport \\\"./PythStructs.sol\\\";\\nimport \\\"./IPythEvents.sol\\\";\\n\\n/// @title Consume prices from the Pyth Network (https://pyth.network/).\\n/// @dev Please refer to the guidance at https://docs.pyth.network/consumers/best-practices for how to consume prices safely.\\n/// @author Pyth Data Association\\ninterface IPyth is IPythEvents {\\n /// @notice Returns the period (in seconds) that a price feed is considered valid since its publish time\\n function getValidTimePeriod() external view returns (uint validTimePeriod);\\n\\n /// @notice Returns the price and confidence interval.\\n /// @dev Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.\\n /// @param id The Pyth Price Feed ID of which to fetch the price and confidence interval.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPrice(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price and confidence interval.\\n /// @dev Reverts if the EMA price is not available.\\n /// @param id The Pyth Price Feed ID of which to fetch the EMA price and confidence interval.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPrice(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the price of a price feed without any sanity checks.\\n /// @dev This function returns the most recent price update in this contract without any recency checks.\\n /// This function is unsafe as the returned price update may be arbitrarily far in the past.\\n ///\\n /// Users of this function should check the `publishTime` in the price to ensure that the returned price is\\n /// sufficiently recent for their application. If you are considering using this function, it may be\\n /// safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPriceUnsafe(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the price that is no older than `age` seconds of the current time.\\n /// @dev This function is a sanity-checked version of `getPriceUnsafe` which is useful in\\n /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\\n /// recently.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPriceNoOlderThan(\\n bytes32 id,\\n uint age\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\\n /// @dev This function returns the same price as `getEmaPrice` in the case where the price is available.\\n /// However, if the price is not recent this function returns the latest available price.\\n ///\\n /// The returned price can be from arbitrarily far in the past; this function makes no guarantees that\\n /// the returned price is recent or useful for any particular application.\\n ///\\n /// Users of this function should check the `publishTime` in the price to ensure that the returned price is\\n /// sufficiently recent for their application. If you are considering using this function, it may be\\n /// safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPriceUnsafe(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price that is no older than `age` seconds\\n /// of the current time.\\n /// @dev This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in\\n /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\\n /// recently.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPriceNoOlderThan(\\n bytes32 id,\\n uint age\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Update price feeds with given update messages.\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n /// Prices will be updated if they are more recent than the current stored prices.\\n /// The call will succeed even if the update is not the most recent.\\n /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid.\\n /// @param updateData Array of price update data.\\n function updatePriceFeeds(bytes[] calldata updateData) external payable;\\n\\n /// @notice Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is\\n /// necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the\\n /// given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`.\\n ///\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n ///\\n /// `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime\\n /// of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have\\n /// a newer or equal publish time than the given publish time, it will reject the transaction to save gas.\\n /// Otherwise, it calls updatePriceFeeds method to update the prices.\\n ///\\n /// @dev Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.\\n /// @param updateData Array of price update data.\\n /// @param priceIds Array of price ids.\\n /// @param publishTimes Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`\\n function updatePriceFeedsIfNecessary(\\n bytes[] calldata updateData,\\n bytes32[] calldata priceIds,\\n uint64[] calldata publishTimes\\n ) external payable;\\n\\n /// @notice Returns the required fee to update an array of price updates.\\n /// @param updateData Array of price update data.\\n /// @return feeAmount The required fee in Wei.\\n function getUpdateFee(\\n bytes[] calldata updateData\\n ) external view returns (uint feeAmount);\\n\\n /// @notice Parse `updateData` and return price feeds of the given `priceIds` if they are all published\\n /// within `minPublishTime` and `maxPublishTime`.\\n ///\\n /// You can use this method if you want to use a Pyth price at a fixed time and not the most recent price;\\n /// otherwise, please consider using `updatePriceFeeds`. This method does not store the price updates on-chain.\\n ///\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n ///\\n ///\\n /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid or there is\\n /// no update for any of the given `priceIds` within the given time range.\\n /// @param updateData Array of price update data.\\n /// @param priceIds Array of price ids.\\n /// @param minPublishTime minimum acceptable publishTime for the given `priceIds`.\\n /// @param maxPublishTime maximum acceptable publishTime for the given `priceIds`.\\n /// @return priceFeeds Array of the price feeds corresponding to the given `priceIds` (with the same order).\\n function parsePriceFeedUpdates(\\n bytes[] calldata updateData,\\n bytes32[] calldata priceIds,\\n uint64 minPublishTime,\\n uint64 maxPublishTime\\n ) external payable returns (PythStructs.PriceFeed[] memory priceFeeds);\\n}\\n\",\"keccak256\":\"0x949c65c65fea0578c09a6fc068e09ed1165adede2c835984cefcb25d76de1de2\",\"license\":\"Apache-2.0\"},\"lib/pyth-sdk-solidity/IPythEvents.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\n/// @title IPythEvents contains the events that Pyth contract emits.\\n/// @dev This interface can be used for listening to the updates for off-chain and testing purposes.\\ninterface IPythEvents {\\n /// @dev Emitted when the price feed with `id` has received a fresh update.\\n /// @param id The Pyth Price Feed ID.\\n /// @param publishTime Publish time of the given price update.\\n /// @param price Price of the given price update.\\n /// @param conf Confidence interval of the given price update.\\n event PriceFeedUpdate(\\n bytes32 indexed id,\\n uint64 publishTime,\\n int64 price,\\n uint64 conf\\n );\\n\\n /// @dev Emitted when a batch price update is processed successfully.\\n /// @param chainId ID of the source chain that the batch price update comes from.\\n /// @param sequenceNumber Sequence number of the batch price update.\\n event BatchPriceFeedUpdate(uint16 chainId, uint64 sequenceNumber);\\n}\\n\",\"keccak256\":\"0x048a35526c2e77d107d43ba336f1dcf31f64cef25ba429ae1f7a0fbc11c23320\",\"license\":\"Apache-2.0\"},\"lib/pyth-sdk-solidity/PythStructs.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\ncontract PythStructs {\\n // A price with a degree of uncertainty, represented as a price +- a confidence interval.\\n //\\n // The confidence interval roughly corresponds to the standard error of a normal distribution.\\n // Both the price and confidence are stored in a fixed-point numeric representation,\\n // `x * (10^expo)`, where `expo` is the exponent.\\n //\\n // Please refer to the documentation at https://docs.pyth.network/consumers/best-practices for how\\n // to how this price safely.\\n struct Price {\\n // Price\\n int64 price;\\n // Confidence interval around the price\\n uint64 conf;\\n // Price exponent\\n int32 expo;\\n // Unix timestamp describing when the price was published\\n uint publishTime;\\n }\\n\\n // PriceFeed represents a current aggregate price from pyth publisher feeds.\\n struct PriceFeed {\\n // The price ID.\\n bytes32 id;\\n // Latest available price\\n Price price;\\n // Latest available exponentially-weighted moving average price\\n Price emaPrice;\\n }\\n}\\n\",\"keccak256\":\"0x95ff0a6d64517348ef604b8bcf246b561a9445d7e607b8f48491c617cfda9b65\",\"license\":\"Apache-2.0\"},\"src/RONRegistrarController.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Initializable } from \\\"@openzeppelin/contracts/proxy/utils/Initializable.sol\\\";\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { AccessControlEnumerable } from \\\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\\\";\\nimport { IPublicResolver } from \\\"./interfaces/resolvers/IPublicResolver.sol\\\";\\nimport {\\n INSUnified,\\n INameChecker,\\n INSDomainPrice,\\n INSReverseRegistrar,\\n IRONRegistrarController\\n} from \\\"./interfaces/IRONRegistrarController.sol\\\";\\nimport { LibString } from \\\"./libraries/LibString.sol\\\";\\nimport { LibRNSDomain } from \\\"./libraries/LibRNSDomain.sol\\\";\\nimport { RONTransferHelper } from \\\"./libraries/transfers/RONTransferHelper.sol\\\";\\n\\n/**\\n * @title RONRegistrarController\\n * @notice Customized version of ETHRegistrarController: https://github.com/ensdomains/ens-contracts/blob/45455f1229556ed4f416ef7225d4caea2c1bc0b5/contracts/ethregistrar/ETHRegistrarController.sol\\n * @dev A registrar controller for registering and renewing names at fixed cost.\\n */\\ncontract RONRegistrarController is\\n Pausable,\\n Initializable,\\n ReentrancyGuard,\\n AccessControlEnumerable,\\n IRONRegistrarController\\n{\\n using LibString for string;\\n using LibRNSDomain for string;\\n\\n /// @dev The minimum domain name's length\\n uint8 public constant MIN_DOMAIN_LENGTH = 3;\\n /// @inheritdoc IRONRegistrarController\\n bytes32 public constant PAUSER_ROLE = keccak256(\\\"PAUSER_ROLE\\\");\\n /// @inheritdoc IRONRegistrarController\\n bytes32 public constant OPERATOR_ROLE = keccak256(\\\"OPERATOR_ROLE\\\");\\n\\n /// @dev Gap for upgradeability.\\n uint256[50] private ____gap;\\n\\n /// @dev Minimum duration between commitment and registration in second(s).\\n uint256 internal _minCommitmentAge;\\n /// @dev Maximum duration between commitment and registration in second(s).\\n uint256 internal _maxCommitmentAge;\\n /// @dev Min registration duration\\n uint256 internal _minRegistrationDuration;\\n\\n /// @dev The treasury address.\\n address payable internal _treasury;\\n /// @dev The rns unified contract.\\n INSUnified internal _rnsUnified;\\n /// @dev The namechecker contract.\\n INameChecker internal _nameChecker;\\n /// @dev The price oracle.\\n INSDomainPrice internal _priceOracle;\\n /// @dev The reverse registrar contract.\\n INSReverseRegistrar internal _reverseRegistrar;\\n\\n /// @dev Mapping from commitment hash => timestamp that commitment made.\\n mapping(bytes32 commitment => uint256 timestamp) internal _committedAt;\\n /// @dev Mapping id => owner => flag indicating whether the owner is whitelisted to buy protected name\\n mapping(uint256 id => mapping(address owner => bool)) internal _protectedNamesWhitelisted;\\n\\n modifier onlyAvailable(string memory name) {\\n _requireAvailable(name);\\n _;\\n }\\n\\n constructor() payable {\\n _disableInitializers();\\n }\\n\\n function initialize(\\n address admin,\\n address pauser,\\n address payable treasury,\\n uint256 maxCommitmentAge,\\n uint256 minCommitmentAge,\\n uint256 minRegistrationDuration,\\n INSUnified rnsUnified,\\n INameChecker nameChecker,\\n INSDomainPrice priceOracle,\\n INSReverseRegistrar reverseRegistrar\\n ) external initializer {\\n _setupRole(PAUSER_ROLE, pauser);\\n _setupRole(DEFAULT_ADMIN_ROLE, admin);\\n\\n _setPriceOracle(priceOracle);\\n _setMinRegistrationDuration(minRegistrationDuration);\\n _setCommitmentAge(minCommitmentAge, maxCommitmentAge);\\n\\n _treasury = treasury;\\n _rnsUnified = rnsUnified;\\n _nameChecker = nameChecker;\\n _reverseRegistrar = reverseRegistrar;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function pause() external onlyRole(PAUSER_ROLE) {\\n _pause();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function unpause() external onlyRole(PAUSER_ROLE) {\\n _unpause();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getMinRegistrationDuration() public view returns (uint256) {\\n return _minRegistrationDuration;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function rentPrice(string memory name, uint64 duration) public view returns (uint256 usdPrice, uint256 ronPrice) {\\n (INSDomainPrice.UnitPrice memory basePrice, INSDomainPrice.UnitPrice memory tax) =\\n _priceOracle.getRenewalFee(name, duration);\\n usdPrice = basePrice.usd + tax.usd;\\n ronPrice = basePrice.ron + tax.ron;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function valid(string memory name) public view returns (bool) {\\n return name.strlen() >= MIN_DOMAIN_LENGTH && !_nameChecker.forbidden(name);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function available(string memory name) public view returns (bool) {\\n return valid(name) && _rnsUnified.available(computeId(name));\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function computeCommitment(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) public view onlyAvailable(name) returns (bytes32) {\\n if (data.length != 0 && resolver == address(0)) revert ResolverRequiredWhenDataSupplied();\\n return keccak256(abi.encode(computeId(name), owner, duration, secret, resolver, data, reverseRecord));\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function computeId(string memory name) public pure returns (uint256 id) {\\n return LibRNSDomain.toId(LibRNSDomain.RON_ID, name);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function commit(bytes32 commitment) external whenNotPaused {\\n if (_committedAt[commitment] + _maxCommitmentAge >= block.timestamp) revert UnexpiredCommitmentExists(commitment);\\n _committedAt[commitment] = block.timestamp;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setMinRegistrationDuration(uint256 duration) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setMinRegistrationDuration(duration);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function register(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable whenNotPaused nonReentrant {\\n uint256 id = computeId(name);\\n if (_rnsUnified.getRecord(id).mut.protected) revert ErrRequestedForProtectedName(name);\\n\\n bytes32 commitHash = computeCommitment({\\n name: name,\\n owner: owner,\\n duration: duration,\\n secret: secret,\\n resolver: resolver,\\n data: data,\\n reverseRecord: reverseRecord\\n });\\n _validateCommitment(duration, commitHash);\\n\\n (uint256 usdPrice, uint256 ronPrice) = _handlePrice(name, duration);\\n _register(name, owner, duration, resolver, data, reverseRecord, usdPrice, ronPrice);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function renew(string calldata name, uint64 duration) external payable whenNotPaused nonReentrant {\\n (, uint256 ronPrice) = rentPrice(name, duration);\\n if (msg.value < ronPrice) revert InsufficientValue();\\n uint256 remainAmount = msg.value - ronPrice;\\n\\n uint256 id = computeId(name);\\n uint64 expiryTime = _rnsUnified.renew(id, duration);\\n emit NameRenewed(name, id, ronPrice, expiryTime);\\n\\n if (remainAmount != 0) RONTransferHelper.safeTransfer(payable(_msgSender()), remainAmount);\\n _transferRONToTreasury();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function registerProtectedName(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable whenNotPaused nonReentrant onlyAvailable(name) {\\n if (!available(name)) revert NameNotAvailable(name);\\n uint256 id = computeId(name);\\n bool protected = _rnsUnified.getRecord(id).mut.protected;\\n bool whitelisted = _protectedNamesWhitelisted[id][owner];\\n if (!protected || !whitelisted) revert ErrInvalidRegisterProtectedName(name, owner, protected, whitelisted);\\n\\n (uint256 usdPrice, uint256 ronPrice) = _handlePrice(name, duration);\\n _register(name, owner, duration, resolver, data, reverseRecord, usdPrice, ronPrice);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function bulkWhitelistProtectedNames(uint256[] calldata ids, address[] calldata owners, bool status)\\n external\\n onlyRole(OPERATOR_ROLE)\\n {\\n uint256 length = ids.length;\\n if (length == 0 || length != owners.length) revert InvalidArrayLength();\\n\\n for (uint256 i; i < length;) {\\n _protectedNamesWhitelisted[ids[i]][owners[i]] = status;\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n emit ProtectedNamesWhitelisted(_msgSender(), ids, owners, status);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getWhitelistProtectedNameStatus(uint256 id, address owner) external view returns (bool status) {\\n return _protectedNamesWhitelisted[id][owner];\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setTreasury(address payable addr) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _treasury = addr;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setCommitmentAge(minCommitmentAge, maxCommitmentAge);\\n }\\n\\n /**\\n * @dev Internal function to update the commitment age range.\\n * Requirements:\\n * - The `maxCommitmentAge` must be less than or equal to the current block timestamp.\\n * - The `maxCommitmentAge` must be greater than the `minCommitmentAge`.\\n * Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\\n * @param minCommitmentAge The minimum commitment age in seconds.\\n * @param maxCommitmentAge The maximum commitment age in seconds.\\n */\\n function _setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) internal {\\n if (maxCommitmentAge > block.timestamp) revert MaxCommitmentAgeTooHigh();\\n if (maxCommitmentAge <= minCommitmentAge) revert MaxCommitmentAgeTooLow();\\n\\n _minCommitmentAge = minCommitmentAge;\\n _maxCommitmentAge = maxCommitmentAge;\\n\\n emit CommitmentAgeUpdated(_msgSender(), minCommitmentAge, maxCommitmentAge);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setPriceOracle(INSDomainPrice priceOracle) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setPriceOracle(priceOracle);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getTreasury() external view returns (address) {\\n return _treasury;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getCommitmentAgeRange() external view returns (uint256 minCommitmentAge, uint256 maxCommitmentAge) {\\n return (_minCommitmentAge, _maxCommitmentAge);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getRNSUnified() external view returns (INSUnified) {\\n return _rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getPriceOracle() external view returns (INSDomainPrice) {\\n return _priceOracle;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getNameChecker() external view returns (INameChecker) {\\n return _nameChecker;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar) {\\n return _reverseRegistrar;\\n }\\n\\n /**\\n * @dev Validates commitment.\\n *\\n * Requirements:\\n * - The duration must larger than or equal to minimum registration duration.\\n * - The passed duration must in a valid range.\\n */\\n function _validateCommitment(uint64 duration, bytes32 commitment) internal {\\n if (duration < _minRegistrationDuration) revert DurationTooShort(duration);\\n\\n uint256 passedDuration = block.timestamp - _committedAt[commitment];\\n if (passedDuration < _minCommitmentAge) revert CommitmentTooNew(commitment);\\n if (_maxCommitmentAge < passedDuration) revert CommitmentTooOld(commitment);\\n\\n delete _committedAt[commitment];\\n }\\n\\n /**\\n * @dev Sets minimum registration duration.\\n * Emits a {MinRegistrationDurationUpdated} event indicating the successful update of the registration duration.\\n */\\n function _setMinRegistrationDuration(uint256 duration) internal {\\n _minRegistrationDuration = duration;\\n emit MinRegistrationDurationUpdated(_msgSender(), duration);\\n }\\n\\n /**\\n * @dev Sets data into resolver address contract.\\n */\\n function _setRecords(address resolverAddress, uint256 id, bytes[] calldata data) internal {\\n IPublicResolver(resolverAddress).multicallWithNodeCheck(bytes32(id), data);\\n }\\n\\n /**\\n * @dev Sets data into reverse registrar.\\n */\\n function _setReverseRecord(string memory name, address owner) internal {\\n _reverseRegistrar.setNameForAddr(owner, string.concat(name, \\\".ron\\\"));\\n }\\n\\n /**\\n * @dev Helper method to take fee into treasury address.\\n */\\n function _transferRONToTreasury() internal {\\n RONTransferHelper.safeTransfer(_treasury, address(this).balance);\\n }\\n\\n /**\\n * @dev Helper method to take renewal fee of a name.\\n */\\n function _handlePrice(string memory name, uint64 duration) internal returns (uint256 usdPrice, uint256 ronPrice) {\\n (usdPrice, ronPrice) = rentPrice(name, duration);\\n if (msg.value < ronPrice) revert InsufficientValue();\\n\\n unchecked {\\n uint256 remainAmount = msg.value - ronPrice;\\n if (remainAmount != 0) RONTransferHelper.safeTransfer(payable(_msgSender()), remainAmount);\\n }\\n\\n _transferRONToTreasury();\\n }\\n\\n /**\\n * @dev Helper method to register a name for owner.\\n *\\n * Emits an event {NameRegistered}.\\n */\\n function _register(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord,\\n uint256 usdPrice,\\n uint256 ronPrice\\n ) internal {\\n (uint64 expiryTime, uint256 id) = _rnsUnified.mint(LibRNSDomain.RON_ID, name, resolver, owner, duration);\\n if (data.length != 0) _setRecords(resolver, id, data);\\n if (reverseRecord) _setReverseRecord(name, owner);\\n emit NameRegistered(name, id, owner, ronPrice, usdPrice, expiryTime);\\n }\\n\\n /**\\n * @dev Helper method to update RNSDomainPrice contract.\\n *\\n * Emits an event {DomainPriceUpdated}.\\n */\\n function _setPriceOracle(INSDomainPrice priceOracle) internal {\\n _priceOracle = priceOracle;\\n emit DomainPriceUpdated(_msgSender(), priceOracle);\\n }\\n\\n /**\\n * @dev Helper method to check if a domain name is available for register.\\n */\\n function _requireAvailable(string memory name) internal view {\\n if (!available(name)) revert NameNotAvailable(name);\\n }\\n}\\n\",\"keccak256\":\"0x5394d6c84b2adc85a27a6ee4e0cdfe0b3b09ba3293c363a5e520414d72a543c5\",\"license\":\"MIT\"},\"src/interfaces/IMulticallable.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.0;\\n\\n/**\\n * @notice To multi-call to a specified contract which has multicall interface:\\n *\\n * ```solidity\\n * interface IMock is IMulticallable {\\n * function foo() external;\\n * function bar() external;\\n * }\\n *\\n * bytes[] memory calldatas = new bytes[](2);\\n * calldatas[0] = abi.encodeCall(IMock.foo,());\\n * calldatas[1] = abi.encodeCall(IMock.bar,());\\n * IMock(target).multicall(calldatas);\\n * ```\\n */\\ninterface IMulticallable {\\n /**\\n * @dev Executes bulk action to the original contract.\\n * Reverts if there is a single call failed.\\n *\\n * @param data The calldata to original contract.\\n *\\n */\\n function multicall(bytes[] calldata data) external returns (bytes[] memory results);\\n\\n /**\\n * @dev Executes bulk action to the original contract.\\n *\\n * @param requireSuccess Flag to indicating whether the contract reverts if there is a single call failed.\\n * @param data The calldata to original contract.\\n *\\n */\\n function tryMulticall(bool requireSuccess, bytes[] calldata data) external returns (bytes[] memory results);\\n}\\n\",\"keccak256\":\"0x0e76578b0efeafdf33915d77d3f98145ac2f74cdd311db03a9b94d4aa566d107\",\"license\":\"UNLICENSED\"},\"src/interfaces/INSDomainPrice.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { PeriodScaler } from \\\"../libraries/math/PeriodScalingUtils.sol\\\";\\nimport { IPyth } from \\\"@pythnetwork/IPyth.sol\\\";\\n\\ninterface INSDomainPrice {\\n error InvalidArrayLength();\\n error RenewalFeeIsNotOverriden();\\n error ExceedAuctionDomainExpiry();\\n\\n struct RenewalFee {\\n uint256 labelLength;\\n uint256 fee;\\n }\\n\\n struct UnitPrice {\\n uint256 usd;\\n uint256 ron;\\n }\\n\\n /// @dev Emitted when the renewal reservation ratio is updated.\\n event TaxRatioUpdated(address indexed operator, uint256 indexed ratio);\\n /// @dev Emitted when the maximum length of renewal fee is updated.\\n event MaxRenewalFeeLengthUpdated(address indexed operator, uint256 indexed maxLength);\\n /// @dev Emitted when the renew fee is updated.\\n event RenewalFeeByLengthUpdated(address indexed operator, uint256 indexed labelLength, uint256 renewalFee);\\n /// @dev Emitted when the renew fee of a domain is overridden. Value of `inverseRenewalFee` is 0 when not overridden.\\n event RenewalFeeOverridingUpdated(address indexed operator, bytes32 indexed labelHash, uint256 inverseRenewalFee);\\n\\n /// @dev Emitted when the domain price is updated.\\n event DomainPriceUpdated(\\n address indexed operator, bytes32 indexed labelHash, uint256 price, bytes32 indexed proofHash, uint256 setType\\n );\\n /// @dev Emitted when the rule to rescale domain price is updated.\\n event DomainPriceScaleRuleUpdated(address indexed operator, uint192 ratio, uint64 period);\\n\\n /// @dev Emitted when the Pyth Oracle config is updated.\\n event PythOracleConfigUpdated(\\n address indexed operator, IPyth indexed pyth, uint256 maxAcceptableAge, bytes32 indexed pythIdForRONUSD\\n );\\n\\n /**\\n * @dev Returns the Pyth oracle config.\\n */\\n function getPythOracleConfig() external view returns (IPyth pyth, uint256 maxAcceptableAge, bytes32 pythIdForRONUSD);\\n\\n /**\\n * @dev Sets the Pyth oracle config.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {PythOracleConfigUpdated}.\\n */\\n function setPythOracleConfig(IPyth pyth, uint256 maxAcceptableAge, bytes32 pythIdForRONUSD) external;\\n\\n /**\\n * @dev Returns the percentage to scale from domain price each period.\\n */\\n function getScaleDownRuleForDomainPrice() external view returns (PeriodScaler memory dpScaleRule);\\n\\n /**\\n * @dev Sets the percentage to scale from domain price each period.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {DomainPriceScaleRuleUpdated}.\\n *\\n * @notice Applies for the business rule: -x% each y seconds.\\n */\\n function setScaleDownRuleForDomainPrice(PeriodScaler calldata scaleRule) external;\\n\\n /**\\n * @dev Returns the renewal fee by lengths.\\n */\\n function getRenewalFeeByLengths() external view returns (RenewalFee[] memory renewalFees);\\n\\n /**\\n * @dev Sets the renewal fee by lengths\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {RenewalFeeByLengthUpdated}.\\n * Emits an event {MaxRenewalFeeLengthUpdated} optionally.\\n */\\n function setRenewalFeeByLengths(RenewalFee[] calldata renewalFees) external;\\n\\n /**\\n * @dev Returns tax ratio.\\n */\\n function getTaxRatio() external view returns (uint256 taxRatio);\\n\\n /**\\n * @dev Sets renewal reservation ratio.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits an event {TaxRatioUpdated}.\\n */\\n function setTaxRatio(uint256 ratio) external;\\n\\n /**\\n * @dev Return the domain price.\\n * @param label The domain label to register (Eg, 'foo' for 'foo.ron').\\n */\\n function getDomainPrice(string memory label) external view returns (uint256 usdPrice, uint256 ronPrice);\\n\\n /**\\n * @dev Returns the renewal fee in USD and RON.\\n * @param label The domain label to register (Eg, 'foo' for 'foo.ron').\\n * @param duration Amount of second(s).\\n */\\n function getRenewalFee(string calldata label, uint256 duration)\\n external\\n view\\n returns (UnitPrice memory basePrice, UnitPrice memory tax);\\n\\n /**\\n * @dev Returns the renewal fee of a label. Reverts if not overridden.\\n * @notice This method is to help developers check the domain renewal fee overriding. Consider using method\\n * {getRenewalFee} instead for full handling of renewal fees.\\n */\\n function getOverriddenRenewalFee(string memory label) external view returns (uint256 usdFee);\\n\\n /**\\n * @dev Bulk override renewal fees.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n *\\n * Emits events {RenewalFeeOverridingUpdated}.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param usdPrices Array of prices in USD. Leave 2^256 - 1 to remove overriding.\\n */\\n function bulkOverrideRenewalFees(bytes32[] calldata lbHashes, uint256[] calldata usdPrices) external;\\n\\n /**\\n * @dev Bulk try to set domain prices. Returns a boolean array indicating whether domain prices at the corresponding\\n * indexes if set or not.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n * - The price should be larger than current domain price or it will not be updated.\\n *\\n * Emits events {DomainPriceUpdated} optionally.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param ronPrices Array of prices in (W)RON token.\\n * @param proofHashes Array of proof hashes.\\n * @param setTypes Array of update types from the operator service.\\n */\\n function bulkTrySetDomainPrice(\\n bytes32[] calldata lbHashes,\\n uint256[] calldata ronPrices,\\n bytes32[] calldata proofHashes,\\n uint256[] calldata setTypes\\n ) external returns (bool[] memory updated);\\n\\n /**\\n * @dev Bulk override domain prices.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n *\\n * Emits events {DomainPriceUpdated}.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param ronPrices Array of prices in (W)RON token.\\n * @param proofHashes Array of proof hashes.\\n * @param setTypes Array of update types from the operator service.\\n */\\n function bulkSetDomainPrice(\\n bytes32[] calldata lbHashes,\\n uint256[] calldata ronPrices,\\n bytes32[] calldata proofHashes,\\n uint256[] calldata setTypes\\n ) external;\\n\\n /**\\n * @dev Returns the converted amount from USD to RON.\\n */\\n function convertUSDToRON(uint256 usdAmount) external view returns (uint256 ronAmount);\\n\\n /**\\n * @dev Returns the converted amount from RON to USD.\\n */\\n function convertRONToUSD(uint256 ronAmount) external view returns (uint256 usdAmount);\\n\\n /**\\n * @dev Value equals to keccak256(\\\"OPERATOR_ROLE\\\").\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the overrider role.\\n */\\n function OVERRIDER_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 (uint64);\\n\\n /**\\n * @dev Decimal for USD.\\n */\\n function USD_DECIMALS() external pure returns (uint8);\\n}\\n\",\"keccak256\":\"0xcb57a6120bbe131d1c2a2ae72ce6a33ab95f5da4cae85e9cd1731496e26db7b1\",\"license\":\"MIT\"},\"src/interfaces/INSReverseRegistrar.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\nimport { INameResolver } from \\\"./resolvers/INameResolver.sol\\\";\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\n\\n/// @dev See https://eips.ethereum.org/EIPS/eip-181#registrar\\ninterface IERC181 {\\n /**\\n * @dev Claims the name hex(addr) + '.addr.reverse' for addr.\\n *\\n * @param addr The address to set as the addr of the reverse record in INS.\\n * @return id The INS node hash of the reverse record.\\n */\\n function claim(address addr) external returns (uint256 id);\\n\\n /**\\n * @dev Claims the name hex(owner) + '.addr.reverse' for owner and sets resolver.\\n *\\n * @param addr The address to set as the owner of the reverse record in INS.\\n * @param resolver The address of the resolver to set; 0 to leave unchanged.\\n * @return id The INS node hash of the reverse record.\\n */\\n function claimWithResolver(address addr, address resolver) external returns (uint256 id);\\n\\n /**\\n * @dev Sets the name record for the reverse INS record associated with the calling account. First updates the\\n * resolver to the default reverse resolver if necessary.\\n *\\n * @param name The name to set for this address.\\n * @return The INS node hash of the reverse record.\\n */\\n function setName(string memory name) external returns (uint256);\\n}\\n\\ninterface INSReverseRegistrar is IERC181, IERC165 {\\n /// @dev Error: The provided id is not child node of `ADDR_REVERSE_ID`\\n error InvalidId();\\n /// @dev Error: The contract is not authorized for minting or modifying domain hex(addr) + '.addr.reverse'.\\n error InvalidConfig();\\n /// @dev Error: The sender lacks the necessary permissions.\\n error Unauthorized();\\n /// @dev Error: The provided resolver address is null.\\n error NullAssignment();\\n\\n /// @dev Emitted when reverse node is claimed.\\n event ReverseClaimed(address indexed addr, uint256 indexed id);\\n /// @dev Emitted when the default resolver is changed.\\n event DefaultResolverChanged(INameResolver indexed resolver);\\n\\n /**\\n * @dev Returns the controller role.\\n */\\n function CONTROLLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns default resolver.\\n */\\n function getDefaultResolver() external view returns (INameResolver);\\n\\n /**\\n * @dev Returns RNSUnified contract.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Sets default resolver.\\n *\\n * Requirement:\\n *\\n * - The method caller must be admin.\\n *\\n * Emitted an event {DefaultResolverChanged}.\\n *\\n */\\n function setDefaultResolver(INameResolver resolver) external;\\n\\n /**\\n * @dev Same as {IERC181-setName}.\\n */\\n function setNameForAddr(address addr, string memory name) external returns (uint256 id);\\n\\n /**\\n * @dev Returns address that the reverse node resolves for.\\n * Eg. node namehash('{addr}.addr.reverse') will always resolve for `addr`.\\n */\\n function getAddress(uint256 id) external view returns (address);\\n\\n /**\\n * @dev Returns the id hash for a given account's reverse records.\\n * @param addr The address to hash\\n * @return The INS node hash.\\n */\\n function computeId(address addr) external pure returns (uint256);\\n}\\n\",\"keccak256\":\"0x3b88e9ea1dd7c128244b5d0c69cee9dcadcb16b05a7e13416cc7b95c071b60a4\",\"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/interfaces/INameChecker.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\n/**\\n * @title INameChecker\\n * @dev The INameChecker interface provides functions for managing and checking substrings and forbidden words in strings.\\n */\\ninterface INameChecker {\\n /**\\n * @dev Emitted when the word range is updated.\\n * @param operator The address that updated the word range.\\n * @param min The minimum word length allowed.\\n * @param max The maximum word length allowed.\\n */\\n event WordRangeUpdated(address indexed operator, uint8 min, uint8 max);\\n\\n /**\\n * @dev Emitted when the forbidden words are updated.\\n * @param operator The address that updated the forbidden words list.\\n * @param wordCount The number of words in the list.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n event ForbiddenWordsUpdated(address indexed operator, uint256 wordCount, bool shouldForbid);\\n\\n /**\\n * @dev Returns an array of all substrings of a given string.\\n * @param str The input string to analyze.\\n * @return subStrings An array of all substrings.\\n */\\n function getAllSubStrings(string calldata str) external view returns (string[] memory subStrings);\\n\\n /**\\n * @dev Returns the total number of substrings for a given string length, as well as the minimum and maximum allowed word lengths.\\n * @param strlen The length of the input string.\\n * @return total The total number of substrings.\\n * @return min The minimum word length allowed.\\n * @return max The maximum word length allowed.\\n */\\n function totalSubString(uint256 strlen) external view returns (uint256 total, uint256 min, uint256 max);\\n\\n /**\\n * @dev Sets a list of forbidden words and specifies whether they should be forbidden.\\n * @param packedWords An array of packed word representations.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n function setForbiddenWords(uint256[] calldata packedWords, bool shouldForbid) external;\\n\\n /**\\n * @dev Sets a list of forbidden words and specifies whether they should be forbidden.\\n * @param words An array of raw words in string representations.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n function setForbiddenWords(string[] calldata words, bool shouldForbid) external;\\n\\n /**\\n * @dev Sets the minimum and maximum word lengths allowed.\\n * @param min The minimum word length.\\n * @param max The maximum word length.\\n */\\n function setWordRange(uint8 min, uint8 max) external;\\n\\n /**\\n * @dev Retrieves the current minimum and maximum word lengths allowed.\\n * @return min The minimum word length allowed.\\n * @return max The maximum word length allowed.\\n */\\n function getWordRange() external view returns (uint8 min, uint8 max);\\n\\n /**\\n * @notice Checks if a given name contains any forbidden characters or blacklisted words.\\n * @param name The string to check.\\n * @return true if the name contains forbidden characters or blacklisted words, false otherwise.\\n */\\n function forbidden(string calldata name) external view returns (bool);\\n\\n /**\\n * @notice Checks if a given name contains any blacklisted words.\\n * @param name The string to check.\\n * @return true if the name contains blacklisted words, false otherwise.\\n */\\n function containsBlacklistedWord(string calldata name) external view returns (bool);\\n\\n /**\\n * @notice Checks if a given name contains any invalid characters.\\n * requirements:\\n * - all characters in name must in range [a-z] or [0-9].\\n * @param name The string to check.\\n * @return true if the name contains invalid characters, false otherwise.\\n */\\n function containsInvalidCharacter(string calldata name) external pure returns (bool);\\n\\n /**\\n * @dev Packs a string into a single word representation.\\n * @param str The string to be packed.\\n * @notice Returns `uint256(0)` if the length is zero or greater than 31.\\n * @return packed The packed value of the input string.\\n */\\n function pack(string memory str) external pure returns (uint256 packed);\\n\\n /**\\n * @dev Packs an array of strings into their single word representations.\\n * @param strs The array of strings to be packed.\\n * @notice Returns an array of packed values, along with the minimum and maximum string lengths.\\n * @return packeds An array containing the packed values of the input strings.\\n */\\n function packBulk(string[] memory strs) external pure returns (uint256[] memory packeds);\\n}\\n\",\"keccak256\":\"0x9f2b9f08f8d60f565f93925ad64353f01feaad671440d865f45008d1304d4794\",\"license\":\"MIT\"},\"src/interfaces/IRONRegistrarController.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\nimport { INSDomainPrice } from \\\"./INSDomainPrice.sol\\\";\\nimport { INameChecker } from \\\"./INameChecker.sol\\\";\\nimport { INSReverseRegistrar } from \\\"./INSReverseRegistrar.sol\\\";\\n\\n/**\\n * @title IRONRegistrarController\\n * @dev Interface for the Registrar Controller contract that manages the registration, renewal, and commitment of RNS\\n * names.\\n */\\ninterface IRONRegistrarController {\\n /// @dev Error: The provided commitment timestamp is too new for registration.\\n error CommitmentTooNew(bytes32 commitment);\\n /// @dev Error: The provided commitment timestamp is too old for registration.\\n error CommitmentTooOld(bytes32 commitment);\\n /// @dev Error: The requested name is not available for registration.\\n error NameNotAvailable(string name);\\n /// @dev Error: The requested duration for registration is too short.\\n error DurationTooShort(uint64 duration);\\n /// @dev Error: A resolver is required when additional data is supplied during registration.\\n error ResolverRequiredWhenDataSupplied();\\n /// @dev Error: An unexpired commitment already exists for the given commitment.\\n error UnexpiredCommitmentExists(bytes32 commitment);\\n /// @dev Error: Insufficient value (RON) provided for registration.\\n error InsufficientValue();\\n /// @dev Error: The sender is not authorized for the given RNS node.\\n error Unauthorized(bytes32 node);\\n /// @dev Error: The maximum commitment age is set too low.\\n error MaxCommitmentAgeTooLow();\\n /// @dev Error: The maximum commitment age is set too high.\\n error MaxCommitmentAgeTooHigh();\\n /// @dev Thrown when some one requests for protected names\\n error ErrRequestedForProtectedName(string name);\\n /// @dev Thrown when received invalid params for registering protected name\\n error ErrInvalidRegisterProtectedName(string name, address requestOwner, bool nameProtected, bool ownerWhitelisted);\\n /// @dev Thrown when received invalid array length\\n error InvalidArrayLength();\\n\\n /**\\n * @dev Emitted when the min registration duration is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param duration The new duration in seconds.\\n */\\n event MinRegistrationDurationUpdated(address indexed operator, uint256 duration);\\n\\n /**\\n * @dev Emitted when RNSDomainPrice contract is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param newDomainPrice The new duration domain price contract.\\n */\\n event DomainPriceUpdated(address indexed operator, INSDomainPrice newDomainPrice);\\n\\n /**\\n * @dev Emitted when the commitment age range is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param minCommitmentAge The new minimum commitment age in seconds.\\n * @param maxCommitmentAge The new maximum commitment age in seconds.\\n */\\n event CommitmentAgeUpdated(address indexed operator, uint256 minCommitmentAge, uint256 maxCommitmentAge);\\n\\n /**\\n * @dev Emitted when a new name is successfully registered.\\n * @param name The registered name.\\n * @param id The namehash of the registered name.\\n * @param owner The owner of the registered name.\\n * @param ronPrice The cost of the registration in RON.\\n * @param usdPrice The cost of the registration in USD.\\n * @param expires The expiration timestamp of the registration.\\n */\\n event NameRegistered(\\n string name, uint256 indexed id, address indexed owner, uint256 ronPrice, uint256 usdPrice, uint64 expires\\n );\\n\\n /**\\n * @dev Emitted when a name is renewed.\\n * @param name The renewed name.\\n * @param id The namehash of the registered name.\\n * @param cost The cost of renewal.\\n * @param expires The new expiration timestamp after renewal.\\n */\\n event NameRenewed(string name, uint256 indexed id, uint256 cost, uint64 expires);\\n\\n /**\\n * @dev Emitted the whitelist status is updated for the owners of the protected names.\\n * @param operator The address of the operator who triggered the update.\\n */\\n event ProtectedNamesWhitelisted(address indexed operator, uint256[] ids, address[] owners, bool status);\\n\\n /**\\n * @dev Retrieves the rent price for a given name and duration.\\n * @param name The name for which to calculate the rent price.\\n * @param duration The duration of the rent.\\n * @return usdPrice rent price in usd.\\n * @return ronPrice rent price in ron.\\n */\\n function rentPrice(string memory name, uint64 duration) external view returns (uint256 usdPrice, uint256 ronPrice);\\n\\n /**\\n * @dev Calculate the corresponding id given RON_ID and name.\\n */\\n function computeId(string memory name) external pure returns (uint256 id);\\n\\n /**\\n * @dev Checks if a name is valid.\\n * @param name The name to check validity for.\\n * @return A boolean indicating whether the name is available.\\n */\\n function valid(string memory name) external view returns (bool);\\n\\n /**\\n * @dev Checks if a name is available for registration.\\n * @param name The name to check availability for.\\n * @return A boolean indicating whether the name is available.\\n */\\n function available(string memory name) external returns (bool);\\n\\n /**\\n * @dev Generates the commitment hash for a registration.\\n * @param name The name to be registered.\\n * @param owner The owner of the name.\\n * @param duration The duration of the registration.\\n * @param secret The secret used for the commitment.\\n * @param resolver The resolver contract address.\\n * @param data Additional data associated with the registration.\\n * @param reverseRecord Whether to use reverse record for additional data.\\n * @return The commitment hash.\\n */\\n function computeCommitment(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external view returns (bytes32);\\n\\n /**\\n * @dev Commits to a registration using the commitment hash.\\n * @param commitment The commitment hash.\\n */\\n function commit(bytes32 commitment) external;\\n\\n /**\\n * @dev Registers a new name.\\n * @param name The name to be registered.\\n * @param owner The owner of the name.\\n * @param duration The duration of the registration.\\n * @param secret The secret used for the commitment.\\n * @param resolver The resolver contract address.\\n * @param data Additional data associated with the registration.\\n * @param reverseRecord Whether to use reverse record for additional data.\\n */\\n function register(\\n string calldata name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable;\\n\\n /**\\n * @dev Renews an existing name registration.\\n * @param name The name to be renewed.\\n * @param duration The duration of the renewal.\\n */\\n function renew(string calldata name, uint64 duration) external payable;\\n\\n /**\\n * @dev Registers a protected name.\\n *\\n * Requirements:\\n * - The owner is whitelisted for registering.\\n */\\n function registerProtectedName(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable;\\n\\n /**\\n * @dev Updates min registration duration.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function setMinRegistrationDuration(uint256 duration) external;\\n\\n /**\\n * @dev Sets the minimum and maximum commitment ages.\\n *\\n * Requirements:\\n * - Caller must have the DEFAULT_ADMIN_ROLE.\\n * - The `maxCommitmentAge` must be less than or equal to the current block timestamp.\\n * - The `maxCommitmentAge` must be greater than the `minCommitmentAge`.\\n *\\n * Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\\n *\\n * @param minCommitmentAge The minimum commitment age in seconds.\\n * @param maxCommitmentAge The maximum commitment age in seconds.\\n */\\n function setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) external;\\n\\n /**\\n * @dev Bulk (de)whitelist for buying protected names.\\n *\\n * Requirements:\\n * - The method caller is contract operator.\\n *\\n * Emits an event {ProtectedNamesWhitelisted}.\\n */\\n function bulkWhitelistProtectedNames(uint256[] calldata ids, address[] calldata owners, bool status) external;\\n\\n /**\\n * @dev Returns the whitelist status for registering protected name.\\n */\\n function getWhitelistProtectedNameStatus(uint256 id, address owner) external view returns (bool status);\\n\\n /**\\n * @dev Updates treasury address.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function setTreasury(address payable) external;\\n\\n /**\\n * @dev Updates price oracle address.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n */\\n function setPriceOracle(INSDomainPrice) external;\\n\\n /**\\n * @dev Returns the treasury address.\\n */\\n function getTreasury() external view returns (address);\\n\\n /**\\n * @dev Pauses the registrar controller's functionality.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function pause() external;\\n\\n /**\\n * @dev Unpauses the registrar controller's functionality.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function unpause() external;\\n\\n /**\\n * @dev Returns the role identifier for the pauser role.\\n */\\n function PAUSER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the operator role.\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the threshold for valid name length.\\n */\\n function MIN_DOMAIN_LENGTH() external view returns (uint8);\\n\\n /**\\n * @dev Returns the minimum registration duration.\\n */\\n function getMinRegistrationDuration() external view returns (uint256);\\n\\n /**\\n * @dev Returns the range of commitment ages allowed.\\n */\\n function getCommitmentAgeRange() external view returns (uint256 minCommitmentAge, uint256 maxCommitmentAge);\\n\\n /**\\n * @dev Returns the INSUnified contract associated with this controller.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Returns the INSDomainPrice contract associated with this controller.\\n */\\n function getPriceOracle() external view returns (INSDomainPrice);\\n\\n /**\\n * @dev Returns the INameChecker contract associated with this controller.\\n */\\n function getNameChecker() external view returns (INameChecker);\\n\\n /**\\n * @dev Returns the IReverseRegistrar contract associated with this controller.\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar);\\n}\\n\",\"keccak256\":\"0x553ded8a480060073e6274dadb390c441d4caa968df64d2f65b2401ffd422b00\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IABIResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.0;\\n\\ninterface IABIResolver {\\n /// Thrown when the input content type is invalid.\\n error InvalidContentType();\\n\\n /// @dev Emitted when the ABI is changed.\\n event ABIChanged(bytes32 indexed node, uint256 indexed contentType);\\n\\n /**\\n * @dev Sets the ABI associated with an INS node. Nodes may have one ABI of each content type. To remove an ABI, set it\\n * to the empty string.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n * - The content type must be powers of 2.\\n *\\n * Emitted an event {ABIChanged}.\\n *\\n * @param node The node to update.\\n * @param contentType The content type of the ABI\\n * @param data The ABI data.\\n */\\n function setABI(bytes32 node, uint256 contentType, bytes calldata data) external;\\n\\n /**\\n * @dev Returns the ABI associated with an INS node.\\n * Defined in EIP-205, see more at https://eips.ethereum.org/EIPS/eip-205\\n *\\n * @param node The INS node to query\\n * @param contentTypes A bitwise OR of the ABI formats accepted by the caller.\\n * @return contentType The content type of the return value\\n * @return data The ABI data\\n */\\n function ABI(bytes32 node, uint256 contentTypes) external view returns (uint256 contentType, bytes memory data);\\n}\\n\",\"keccak256\":\"0xc701a6cafa883d6607b5916dfb4277099f39c450930d776da36a7acc2b2498c0\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IAddressResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.0;\\n\\ninterface IAddressResolver {\\n /// @dev Emitted when an address of a node is changed.\\n event AddrChanged(bytes32 indexed node, address addr);\\n\\n /**\\n * @dev Sets the address associated with an INS node.\\n *\\n * Requirement:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {AddrChanged}.\\n *\\n * @param node The node to update.\\n * @param addr The address to set.\\n */\\n function setAddr(bytes32 node, address addr) external;\\n\\n /**\\n * @dev Returns the address associated with an INS node.\\n * @param node The INS node to query.\\n * @return The associated address.\\n */\\n function addr(bytes32 node) external view returns (address payable);\\n}\\n\",\"keccak256\":\"0xb914cb4a730d20c867805fd148e7574c6565bc6c0a129825cdf3cf4f2f7f72d0\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IContentHashResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IContentHashResolver {\\n /// @dev Emitted when the content hash of a node is changed.\\n event ContentHashChanged(bytes32 indexed node, bytes hash);\\n\\n /**\\n * @dev Sets the content hash associated with an INS node.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {ContentHashChanged}.\\n *\\n * @param node The node to update.\\n * @param hash The content hash to set\\n */\\n function setContentHash(bytes32 node, bytes calldata hash) external;\\n\\n /**\\n * @dev Returns the content hash associated with an INS node.\\n * @param node The INS node to query.\\n * @return The associated content hash.\\n */\\n function contentHash(bytes32 node) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0xfbdc7211a813065e5cc2bdd3640c13f01c87b5f31fda86e562b0525628602c00\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IDNSRecordResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.4;\\n\\ninterface IDNSRecordResolver {\\n /// @dev Emitted whenever a given node/name/resource's RRSET is updated.\\n event DNSRecordChanged(bytes32 indexed node, bytes name, uint16 resource, bytes record);\\n /// @dev Emitted whenever a given node/name/resource's RRSET is deleted.\\n event DNSRecordDeleted(bytes32 indexed node, bytes name, uint16 resource);\\n\\n /**\\n * @dev Set one or more DNS records. Records are supplied in wire-format. Records with the same node/name/resource\\n * must be supplied one after the other to ensure the data is updated correctly. For example, if the data was\\n * supplied:\\n * a.example.com IN A 1.2.3.4\\n * a.example.com IN A 5.6.7.8\\n * www.example.com IN CNAME a.example.com.\\n * then this would store the two A records for a.example.com correctly as a single RRSET, however if the data was\\n * supplied:\\n * a.example.com IN A 1.2.3.4\\n * www.example.com IN CNAME a.example.com.\\n * a.example.com IN A 5.6.7.8\\n * then this would store the first A record, the CNAME, then the second A record which would overwrite the first.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * @param node the namehash of the node for which to set the records\\n * @param data the DNS wire format records to set\\n */\\n function setDNSRecords(bytes32 node, bytes calldata data) external;\\n\\n /**\\n * @dev Obtain a DNS record.\\n * @param node the namehash of the node for which to fetch the record\\n * @param name the keccak-256 hash of the fully-qualified name for which to fetch the record\\n * @param resource the ID of the resource as per https://en.wikipedia.org/wiki/List_of_DNS_record_types\\n * @return the DNS record in wire format if present, otherwise empty\\n */\\n function dnsRecord(bytes32 node, bytes32 name, uint16 resource) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x2341266d70b60f5bb666c066aaf1fdb35be81277bcdd04e3bf93ee774ae4d2f6\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IDNSZoneResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.4;\\n\\ninterface IDNSZoneResolver {\\n /// @dev Emitted whenever a given node's zone hash is updated.\\n event DNSZonehashChanged(bytes32 indexed node, bytes lastzonehash, bytes zonehash);\\n\\n /**\\n * @dev Sets the hash for the zone.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {DNSZonehashChanged}.\\n *\\n * @param node The node to update.\\n * @param hash The zonehash to set\\n */\\n function setZonehash(bytes32 node, bytes calldata hash) external;\\n\\n /**\\n * @dev Obtains the hash for the zone.\\n * @param node The INS node to query.\\n * @return The associated contenthash.\\n */\\n function zonehash(bytes32 node) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x42aa5409a184740461e7477b8894d7549fd3908596bb7dba9adab59b8ff4ebed\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IInterfaceResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IInterfaceResolver {\\n /// @dev Emitted when the interface of node is changed.\\n event InterfaceChanged(bytes32 indexed node, bytes4 indexed interfaceID, address implementer);\\n\\n /**\\n * @dev Sets an interface associated with a name.\\n * Setting the address to 0 restores the default behaviour of querying the contract at `addr()` for interface support.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * @param node The node to update.\\n * @param interfaceID The EIP 165 interface ID.\\n * @param implementer The address of a contract that implements this interface for this node.\\n */\\n function setInterface(bytes32 node, bytes4 interfaceID, address implementer) external;\\n\\n /**\\n * @dev Returns the address of a contract that implements the specified interface for this name.\\n *\\n * If an implementer has not been set for this interfaceID and name, the resolver will query the contract at `addr()`.\\n * If `addr()` is set, a contract exists at that address, and that contract implements EIP165 and returns `true` for\\n * the specified interfaceID, its address will be returned.\\n *\\n * @param node The INS node to query.\\n * @param interfaceID The EIP 165 interface ID to check for.\\n * @return The address that implements this interface, or 0 if the interface is unsupported.\\n */\\n function interfaceImplementer(bytes32 node, bytes4 interfaceID) external view returns (address);\\n}\\n\",\"keccak256\":\"0xb4a1867d5cb899bfdc2e812c4bf9b9d3d14b34e0f72cbeffb4e018f8659b13fc\",\"license\":\"MIT\"},\"src/interfaces/resolvers/INameResolver.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.0;\\n\\ninterface INameResolver {\\n /// @dev Emitted when a node name is changed.\\n event NameChanged(bytes32 indexed node, string name);\\n\\n /**\\n * @dev Sets the name associated with an INS node, for reverse records.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {NameChanged}.\\n *\\n * @param node The node to update.\\n */\\n function setName(bytes32 node, string calldata newName) external;\\n\\n /**\\n * @dev Returns the name associated with an INS node, for reverse records.\\n * @param node The INS node to query.\\n * @return The associated name.\\n */\\n function name(bytes32 node) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0xf3dbbe3238d5f1e491a43dbccbd74755fcd325b5c6aef6b7f0819684bd1f9da3\",\"license\":\"UNLICENSED\"},\"src/interfaces/resolvers/IPublicKeyResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ninterface IPublicKeyResolver {\\n struct PublicKey {\\n bytes32 x;\\n bytes32 y;\\n }\\n\\n /// @dev Emitted when a node public key is changed.\\n event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y);\\n\\n /**\\n * @dev Sets the SECP256k1 public key associated with an INS node.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {PubkeyChanged}.\\n *\\n * @param node The INS node to query\\n * @param x the X coordinate of the curve point for the public key.\\n * @param y the Y coordinate of the curve point for the public key.\\n */\\n function setPubkey(bytes32 node, bytes32 x, bytes32 y) external;\\n\\n /**\\n * @dev Returns the SECP256k1 public key associated with an INS node.\\n * Defined in EIP 619.\\n *\\n * @param node The INS node to query\\n * @return x The X coordinate of the curve point for the public key.\\n * @return y The Y coordinate of the curve point for the public key.\\n */\\n function pubkey(bytes32 node) external view returns (bytes32 x, bytes32 y);\\n}\\n\",\"keccak256\":\"0x2644fd8d9b951c2aca5521ba519b68d4f3de19b731dae7907b6372e1ceac07ae\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IPublicResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"../INSUnified.sol\\\";\\nimport { INSReverseRegistrar } from \\\"../INSReverseRegistrar.sol\\\";\\nimport { IABIResolver } from \\\"./IABIResolver.sol\\\";\\nimport { IAddressResolver } from \\\"./IAddressResolver.sol\\\";\\nimport { IContentHashResolver } from \\\"./IContentHashResolver.sol\\\";\\nimport { IDNSRecordResolver } from \\\"./IDNSRecordResolver.sol\\\";\\nimport { IDNSZoneResolver } from \\\"./IDNSZoneResolver.sol\\\";\\nimport { IInterfaceResolver } from \\\"./IInterfaceResolver.sol\\\";\\nimport { INameResolver } from \\\"./INameResolver.sol\\\";\\nimport { IPublicKeyResolver } from \\\"./IPublicKeyResolver.sol\\\";\\nimport { ITextResolver } from \\\"./ITextResolver.sol\\\";\\nimport { IMulticallable } from \\\"../IMulticallable.sol\\\";\\n\\ninterface IPublicResolver is\\n IABIResolver,\\n IAddressResolver,\\n IContentHashResolver,\\n IDNSRecordResolver,\\n IDNSZoneResolver,\\n IInterfaceResolver,\\n INameResolver,\\n IPublicKeyResolver,\\n ITextResolver,\\n IMulticallable\\n{\\n /// @dev See {IERC1155-ApprovalForAll}. Logged when an operator is added or removed.\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /// @dev Logged when a delegate is approved or an approval is revoked.\\n event Approved(address owner, bytes32 indexed node, address indexed delegate, bool indexed approved);\\n\\n /**\\n * @dev Checks if an account is authorized to manage the resolution of a specific RNS node.\\n * @param node The RNS node.\\n * @param account The account address being checked for authorization.\\n * @return A boolean indicating whether the account is authorized.\\n */\\n function isAuthorized(bytes32 node, address account) external view returns (bool);\\n\\n /**\\n * @dev Retrieves the RNSUnified associated with this resolver.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Retrieves the reverse registrar associated with this resolver.\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar);\\n\\n /**\\n * @dev This function provides an extra security check when called from privileged contracts (such as\\n * RONRegistrarController) that can set records on behalf of the node owners.\\n *\\n * Reverts if the node is not null but calldata is mismatched.\\n */\\n function multicallWithNodeCheck(bytes32 node, bytes[] calldata data) external returns (bytes[] memory results);\\n}\\n\",\"keccak256\":\"0x97b6f762f25a4dc3f6398a76bbcb7d3922f5f440ee9e0541c83579e09a8f87b7\",\"license\":\"MIT\"},\"src/interfaces/resolvers/ITextResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ninterface ITextResolver {\\n /// @dev Emitted when a node text is changed.\\n event TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value);\\n\\n /**\\n * @dev Sets the text data associated with an INS node and key.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {TextChanged}.\\n *\\n * @param node The node to update.\\n * @param key The key to set.\\n * @param value The text data value to set.\\n */\\n function setText(bytes32 node, string calldata key, string calldata value) external;\\n\\n /**\\n * Returns the text data associated with an INS node and key.\\n * @param node The INS node to query.\\n * @param key The text data key to query.\\n * @return The associated text data.\\n */\\n function text(bytes32 node, string calldata key) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x05ce1760d3a16d99614b1a46c11308238e1ecd8be23f081fac146bbc58961ecf\",\"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/LibString.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nlibrary LibString {\\n error InvalidStringLength();\\n error InvalidCharacter(bytes1 char);\\n\\n /// @dev Lookup constant for method. See more detail at https://eips.ethereum.org/EIPS/eip-181\\n bytes32 private constant LOOKUP = 0x3031323334353637383961626364656600000000000000000000000000000000;\\n\\n /**\\n * @dev Returns the length of a given string\\n *\\n * @param s The string to measure the length of\\n * @return The length of the input string\\n */\\n function strlen(string memory s) internal pure returns (uint256) {\\n unchecked {\\n uint256 i;\\n uint256 len;\\n uint256 bytelength = bytes(s).length;\\n for (len; i < bytelength; len++) {\\n bytes1 b = bytes(s)[i];\\n if (b < 0x80) {\\n i += 1;\\n } else if (b < 0xE0) {\\n i += 2;\\n } else if (b < 0xF0) {\\n i += 3;\\n } else if (b < 0xF8) {\\n i += 4;\\n } else if (b < 0xFC) {\\n i += 5;\\n } else {\\n i += 6;\\n }\\n }\\n return len;\\n }\\n }\\n\\n /**\\n * @dev Converts an address to string.\\n */\\n function toString(address addr) internal pure returns (string memory stringifiedAddr) {\\n assembly (\\\"memory-safe\\\") {\\n mstore(stringifiedAddr, 40)\\n let ptr := add(stringifiedAddr, 0x20)\\n for { let i := 40 } gt(i, 0) { } {\\n i := sub(i, 1)\\n mstore8(add(i, ptr), byte(and(addr, 0xf), LOOKUP))\\n addr := div(addr, 0x10)\\n\\n i := sub(i, 1)\\n mstore8(add(i, ptr), byte(and(addr, 0xf), LOOKUP))\\n addr := div(addr, 0x10)\\n }\\n }\\n }\\n\\n /**\\n * @dev Converts string to address.\\n * Reverts if the string length is not equal to 40.\\n */\\n function parseAddr(string memory stringifiedAddr) internal pure returns (address) {\\n unchecked {\\n if (bytes(stringifiedAddr).length != 40) revert InvalidStringLength();\\n uint160 addr;\\n for (uint256 i = 0; i < 40; i += 2) {\\n addr *= 0x100;\\n addr += uint160(hexCharToDec(bytes(stringifiedAddr)[i])) * 0x10;\\n addr += hexCharToDec(bytes(stringifiedAddr)[i + 1]);\\n }\\n return address(addr);\\n }\\n }\\n\\n /**\\n * @dev Converts a hex char (0-9, a-f, A-F) to decimal number.\\n * Reverts if the char is invalid.\\n */\\n function hexCharToDec(bytes1 c) private pure returns (uint8 r) {\\n unchecked {\\n if ((bytes1(\\\"a\\\") <= c) && (c <= bytes1(\\\"f\\\"))) r = uint8(c) - 87;\\n else if ((bytes1(\\\"A\\\") <= c) && (c <= bytes1(\\\"F\\\"))) r = uint8(c) - 55;\\n else if ((bytes1(\\\"0\\\") <= c) && (c <= bytes1(\\\"9\\\"))) r = uint8(c) - 48;\\n else revert InvalidCharacter(c);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9d456b294f0e44ccaabded43a3d96db6270761a167535155a762fe41e968b905\",\"license\":\"MIT\"},\"src/libraries/math/PeriodScalingUtils.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\nimport { PowMath } from \\\"./PowMath.sol\\\";\\n\\nstruct PeriodScaler {\\n uint192 ratio;\\n uint64 period;\\n}\\n\\nlibrary LibPeriodScaler {\\n using PowMath for uint256;\\n\\n error PeriodNumOverflowedUint16(uint256 n);\\n\\n /// @dev The precision number of calculation is 2\\n uint256 public constant MAX_PERCENTAGE = 100_00;\\n\\n /**\\n * @dev Scales down the input value `v` for a percentage of `self.ratio` each period `self.period`.\\n * Reverts if the passed period is larger than 2^16 - 1.\\n *\\n * @param self The period scaler with specific period and ratio\\n * @param v The original value to scale based on the rule `self`\\n * @param maxR The maximum value of 100%. Eg, if the `self.ratio` in range of [0;100_00] reflexes 0-100%, this param\\n * must be 100_00\\n * @param dur The passed duration in the same uint with `self.period`\\n */\\n function scaleDown(PeriodScaler memory self, uint256 v, uint64 maxR, uint256 dur) internal pure returns (uint256 rs) {\\n uint256 n = dur / uint256(self.period);\\n if (n == 0 || self.ratio == 0) return v;\\n if (maxR == self.ratio) return 0;\\n if (n > type(uint16).max) revert PeriodNumOverflowedUint16(n);\\n\\n unchecked {\\n // Normalizes the input ratios to be in range of [0;MAX_PERCENTAGE]\\n uint256 p = Math.mulDiv(maxR - self.ratio, MAX_PERCENTAGE, maxR);\\n return v.mulDiv({ y: p, d: MAX_PERCENTAGE, n: uint16(n) });\\n }\\n }\\n}\\n\",\"keccak256\":\"0x502d004fbd130a99f3f1e6685aebff9f47300565fbc5a65b4912824ea5eb5b78\",\"license\":\"MIT\"},\"src/libraries/math/PowMath.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { SafeMath } from \\\"@openzeppelin/contracts/utils/math/SafeMath.sol\\\";\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\n\\nlibrary PowMath {\\n using Math for uint256;\\n using SafeMath for uint256;\\n\\n /**\\n * @dev Negative exponent n for x*10^n.\\n */\\n function exp10(uint256 x, int32 n) internal pure returns (uint256) {\\n if (n < 0) {\\n return x / 10 ** uint32(-n);\\n } else if (n > 0) {\\n return x * 10 ** uint32(n);\\n } else {\\n return x;\\n }\\n }\\n\\n /**\\n * @dev Calculates floor(x * (y / d)**n) with full precision.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 d, uint16 n) internal pure returns (uint256 r) {\\n unchecked {\\n if (y == d || n == 0) return x;\\n r = x;\\n\\n bool ok;\\n uint256 r_;\\n uint16 nd_;\\n\\n {\\n uint16 ye = uint16(Math.min(n, findMaxExponent(y)));\\n while (ye > 0) {\\n (ok, r_) = r.tryMul(y ** ye);\\n if (ok) {\\n r = r_;\\n n -= ye;\\n nd_ += ye;\\n }\\n ye = uint16(Math.min(ye / 2, n));\\n }\\n }\\n\\n while (n > 0) {\\n (ok, r_) = r.tryMul(y);\\n if (ok) {\\n r = r_;\\n n--;\\n nd_++;\\n } else if (nd_ > 0) {\\n r /= d;\\n nd_--;\\n } else {\\n r = r.mulDiv(y, d);\\n n--;\\n }\\n }\\n\\n uint16 de = findMaxExponent(d);\\n while (nd_ > 0) {\\n uint16 e = uint16(Math.min(de, nd_));\\n r /= d ** e;\\n nd_ -= e;\\n }\\n }\\n }\\n\\n /**\\n * @dev Calculates floor(x * (y / d)**n) with low precision.\\n */\\n function mulDivLowPrecision(uint256 x, uint256 y, uint256 d, uint16 n) internal pure returns (uint256) {\\n return uncheckedMulDiv(x, y, d, n, findMaxExponent(Math.max(y, d)));\\n }\\n\\n /**\\n * @dev Aggregated calculate multiplications.\\n * ```\\n * r = x*(y/d)^k\\n * = \\\\prod(x*(y/d)^{k_i}) \\\\ where \\\\ sum(k_i) = k\\n * ```\\n */\\n function uncheckedMulDiv(uint256 x, uint256 y, uint256 d, uint16 n, uint16 maxE) internal pure returns (uint256 r) {\\n unchecked {\\n r = x;\\n uint16 e;\\n while (n > 0) {\\n e = uint16(Math.min(n, maxE));\\n r = r.mulDiv(y ** e, d ** e);\\n n -= e;\\n }\\n }\\n }\\n\\n /**\\n * @dev Returns the largest exponent `k` where, x^k <= 2^256-1\\n * Note: n = Surd[2^256-1,k]\\n * = 10^( log2(2^256-1) / k * log10(2) )\\n */\\n function findMaxExponent(uint256 x) internal pure returns (uint16 k) {\\n if (x < 3) k = 255;\\n else if (x < 4) k = 128;\\n else if (x < 16) k = 64;\\n else if (x < 256) k = 32;\\n else if (x < 7132) k = 20;\\n else if (x < 11376) k = 19;\\n else if (x < 19113) k = 18;\\n else if (x < 34132) k = 17;\\n else if (x < 65536) k = 16;\\n else if (x < 137271) k = 15;\\n else if (x < 319558) k = 14;\\n else if (x < 847180) k = 13;\\n else if (x < 2642246) k = 12;\\n else if (x < 10134189) k = 11;\\n else if (x < 50859009) k = 10;\\n else if (x < 365284285) k = 9;\\n else if (x < 4294967296) k = 8;\\n else if (x < 102116749983) k = 7;\\n else if (x < 6981463658332) k = 6;\\n else if (x < 2586638741762875) k = 5;\\n else if (x < 18446744073709551616) k = 4;\\n else if (x < 48740834812604276470692695) k = 3;\\n else if (x < 340282366920938463463374607431768211456) k = 2;\\n else k = 1;\\n }\\n}\\n\",\"keccak256\":\"0x29f943cf7c61149bc9a624244901720fc3a349adb418555db1db2a045fcdfb70\",\"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": 272, - "numDeployments": 1, + "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"CommitmentTooNew\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"CommitmentTooOld\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"DurationTooShort\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"requestOwner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"nameProtected\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerWhitelisted\",\"type\":\"bool\"}],\"name\":\"ErrInvalidRegisterProtectedName\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"ErrRequestedForProtectedName\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxCommitmentAgeTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxCommitmentAgeTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NameNotAvailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverRequiredWhenDataSupplied\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"UnexpiredCommitmentExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"name\":\"CommitmentAgeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract INSDomainPrice\",\"name\":\"newDomainPrice\",\"type\":\"address\"}],\"name\":\"DomainPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"MinRegistrationDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ronPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"usdPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"NameRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"NameRenewed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"ProtectedNamesWhitelisted\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_DOMAIN_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"bulkWhitelistProtectedNames\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"commitment\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"computeCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"computeId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommitmentAgeRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinRegistrationDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNameChecker\",\"outputs\":[{\"internalType\":\"contract INameChecker\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPriceOracle\",\"outputs\":[{\"internalType\":\"contract INSDomainPrice\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRNSUnified\",\"outputs\":[{\"internalType\":\"contract INSUnified\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReverseRegistrar\",\"outputs\":[{\"internalType\":\"contract INSReverseRegistrar\",\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getWhitelistProtectedNameStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"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\":\"pauser\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minRegistrationDuration\",\"type\":\"uint256\"},{\"internalType\":\"contract INSUnified\",\"name\":\"rnsUnified\",\"type\":\"address\"},{\"internalType\":\"contract INameChecker\",\"name\":\"nameChecker\",\"type\":\"address\"},{\"internalType\":\"contract INSDomainPrice\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract INSReverseRegistrar\",\"name\":\"reverseRegistrar\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"bool\",\"name\":\"reverseRecord\",\"type\":\"bool\"}],\"name\":\"registerProtectedName\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"renew\",\"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\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"}],\"name\":\"rentPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"usdPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ronPrice\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"minCommitmentAge\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxCommitmentAge\",\"type\":\"uint256\"}],\"name\":\"setCommitmentAge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"setMinRegistrationDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract INSDomainPrice\",\"name\":\"priceOracle\",\"type\":\"address\"}],\"name\":\"setPriceOracle\",\"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\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"valid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A registrar controller for registering and renewing names at fixed cost.\",\"errors\":{\"CommitmentTooNew(bytes32)\":[{\"details\":\"Error: The provided commitment timestamp is too new for registration.\"}],\"CommitmentTooOld(bytes32)\":[{\"details\":\"Error: The provided commitment timestamp is too old for registration.\"}],\"DurationTooShort(uint64)\":[{\"details\":\"Error: The requested duration for registration is too short.\"}],\"ErrInvalidRegisterProtectedName(string,address,bool,bool)\":[{\"details\":\"Thrown when received invalid params for registering protected name\"}],\"ErrRequestedForProtectedName(string)\":[{\"details\":\"Thrown when some one requests for protected names\"}],\"InsufficientValue()\":[{\"details\":\"Error: Insufficient value (RON) provided for registration.\"}],\"InvalidArrayLength()\":[{\"details\":\"Thrown when received invalid array length\"}],\"MaxCommitmentAgeTooHigh()\":[{\"details\":\"Error: The maximum commitment age is set too high.\"}],\"MaxCommitmentAgeTooLow()\":[{\"details\":\"Error: The maximum commitment age is set too low.\"}],\"NameNotAvailable(string)\":[{\"details\":\"Error: The requested name is not available for registration.\"}],\"NullAddress()\":[{\"details\":\"Thrown when treasury address is set to null\"}],\"ResolverRequiredWhenDataSupplied()\":[{\"details\":\"Error: A resolver is required when additional data is supplied during registration.\"}],\"Unauthorized(bytes32)\":[{\"details\":\"Error: The sender is not authorized for the given RNS node.\"}],\"UnexpiredCommitmentExists(bytes32)\":[{\"details\":\"Error: An unexpired commitment already exists for the given commitment.\"}]},\"events\":{\"CommitmentAgeUpdated(address,uint256,uint256)\":{\"details\":\"Emitted when the commitment age range is updated.\",\"params\":{\"maxCommitmentAge\":\"The new maximum commitment age in seconds.\",\"minCommitmentAge\":\"The new minimum commitment age in seconds.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"DomainPriceUpdated(address,address)\":{\"details\":\"Emitted when RNSDomainPrice contract is updated.\",\"params\":{\"newDomainPrice\":\"The new duration domain price contract.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MinRegistrationDurationUpdated(address,uint256)\":{\"details\":\"Emitted when the min registration duration is updated.\",\"params\":{\"duration\":\"The new duration in seconds.\",\"operator\":\"The address of the operator who triggered the update.\"}},\"NameRegistered(string,uint256,address,uint256,uint256,uint64)\":{\"details\":\"Emitted when a new name is successfully registered.\",\"params\":{\"expires\":\"The expiration timestamp of the registration.\",\"id\":\"The namehash of the registered name.\",\"name\":\"The registered name.\",\"owner\":\"The owner of the registered name.\",\"ronPrice\":\"The cost of the registration in RON.\",\"usdPrice\":\"The cost of the registration in USD.\"}},\"NameRenewed(string,uint256,uint256,uint64)\":{\"details\":\"Emitted when a name is renewed.\",\"params\":{\"cost\":\"The cost of renewal.\",\"expires\":\"The new expiration timestamp after renewal.\",\"id\":\"The namehash of the registered name.\",\"name\":\"The renewed name.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProtectedNamesWhitelisted(address,uint256[],address[],bool)\":{\"details\":\"Emitted the whitelist status is updated for the owners of the protected names.\",\"params\":{\"operator\":\"The address of the operator who triggered the update.\"}},\"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.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"available(string)\":{\"details\":\"Checks if a name is available for registration.\",\"params\":{\"name\":\"The name to check availability for.\"},\"returns\":{\"_0\":\"A boolean indicating whether the name is available.\"}},\"bulkWhitelistProtectedNames(uint256[],address[],bool)\":{\"details\":\"Bulk (de)whitelist for buying protected names. Requirements: - The method caller is contract operator. Emits an event {ProtectedNamesWhitelisted}.\"},\"commit(bytes32)\":{\"details\":\"Commits to a registration using the commitment hash.\",\"params\":{\"commitment\":\"The commitment hash.\"}},\"computeCommitment(string,address,uint64,bytes32,address,bytes[],bool)\":{\"details\":\"Generates the commitment hash for a registration.\",\"params\":{\"data\":\"Additional data associated with the registration.\",\"duration\":\"The duration of the registration.\",\"name\":\"The name to be registered.\",\"owner\":\"The owner of the name.\",\"resolver\":\"The resolver contract address.\",\"reverseRecord\":\"Whether to use reverse record for additional data.\",\"secret\":\"The secret used for the commitment.\"},\"returns\":{\"_0\":\"The commitment hash.\"}},\"computeId(string)\":{\"details\":\"Calculate the corresponding id given RON_ID and name.\"},\"getCommitmentAgeRange()\":{\"details\":\"Returns the range of commitment ages allowed.\"},\"getMinRegistrationDuration()\":{\"details\":\"Returns the minimum registration duration.\"},\"getNameChecker()\":{\"details\":\"Returns the INameChecker contract associated with this controller.\"},\"getPriceOracle()\":{\"details\":\"Returns the INSDomainPrice contract associated with this controller.\"},\"getRNSUnified()\":{\"details\":\"Returns the INSUnified contract associated with this controller.\"},\"getReverseRegistrar()\":{\"details\":\"Returns the IReverseRegistrar contract associated with this controller.\"},\"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 address.\"},\"getWhitelistProtectedNameStatus(uint256,address)\":{\"details\":\"Returns the whitelist status for registering protected name.\"},\"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`.\"},\"pause()\":{\"details\":\"Pauses the registrar controller's functionality. Requirements: - The caller must have the admin role.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"register(string,address,uint64,bytes32,address,bytes[],bool)\":{\"details\":\"Registers a new name.\",\"params\":{\"data\":\"Additional data associated with the registration.\",\"duration\":\"The duration of the registration.\",\"name\":\"The name to be registered.\",\"owner\":\"The owner of the name.\",\"resolver\":\"The resolver contract address.\",\"reverseRecord\":\"Whether to use reverse record for additional data.\",\"secret\":\"The secret used for the commitment.\"}},\"registerProtectedName(string,address,uint64,address,bytes[],bool)\":{\"details\":\"Registers a protected name. Requirements: - The owner is whitelisted for registering.\"},\"renew(string,uint64)\":{\"details\":\"Renews an existing name registration.\",\"params\":{\"duration\":\"The duration of the renewal.\",\"name\":\"The name to be renewed.\"}},\"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.\"},\"rentPrice(string,uint64)\":{\"details\":\"Retrieves the rent price for a given name and duration.\",\"params\":{\"duration\":\"The duration of the rent.\",\"name\":\"The name for which to calculate the rent price.\"},\"returns\":{\"ronPrice\":\"rent price in ron.\",\"usdPrice\":\"rent price in usd.\"}},\"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.\"},\"setCommitmentAge(uint256,uint256)\":{\"details\":\"Sets the minimum and maximum commitment ages. Requirements: - Caller must have the DEFAULT_ADMIN_ROLE. - The `maxCommitmentAge` must be less than or equal to the current block timestamp. - The `maxCommitmentAge` must be greater than the `minCommitmentAge`. Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\",\"params\":{\"maxCommitmentAge\":\"The maximum commitment age in seconds.\",\"minCommitmentAge\":\"The minimum commitment age in seconds.\"}},\"setMinRegistrationDuration(uint256)\":{\"details\":\"Updates min registration duration. Requirements: - The caller must have the admin role.\"},\"setPriceOracle(address)\":{\"details\":\"Updates price oracle address. Requirements: - The caller must have the admin role.\"},\"setTreasury(address)\":{\"details\":\"Updates treasury address. Requirements: - The caller must have the admin role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unpause()\":{\"details\":\"Unpauses the registrar controller's functionality. Requirements: - The caller must have the admin role.\"},\"valid(string)\":{\"details\":\"Checks if a name is valid.\",\"params\":{\"name\":\"The name to check validity for.\"},\"returns\":{\"_0\":\"A boolean indicating whether the name is available.\"}}},\"stateVariables\":{\"MIN_DOMAIN_LENGTH\":{\"details\":\"The minimum domain name's length\"},\"OPERATOR_ROLE\":{\"details\":\"Returns the operator role.\"},\"PAUSER_ROLE\":{\"details\":\"Returns the role identifier for the pauser role.\"},\"____gap\":{\"details\":\"Gap for upgradeability.\"},\"_committedAt\":{\"details\":\"Mapping from commitment hash => timestamp that commitment made.\"},\"_maxCommitmentAge\":{\"details\":\"Maximum duration between commitment and registration in second(s).\"},\"_minCommitmentAge\":{\"details\":\"Minimum duration between commitment and registration in second(s).\"},\"_minRegistrationDuration\":{\"details\":\"Min registration duration\"},\"_nameChecker\":{\"details\":\"The namechecker contract.\"},\"_priceOracle\":{\"details\":\"The price oracle.\"},\"_protectedNamesWhitelisted\":{\"details\":\"Mapping id => owner => flag indicating whether the owner is whitelisted to buy protected name\"},\"_reverseRegistrar\":{\"details\":\"The reverse registrar contract.\"},\"_rnsUnified\":{\"details\":\"The rns unified contract.\"},\"_treasury\":{\"details\":\"The treasury address.\"}},\"title\":\"RONRegistrarController\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Customized version of ETHRegistrarController: https://github.com/ensdomains/ens-contracts/blob/45455f1229556ed4f416ef7225d4caea2c1bc0b5/contracts/ethregistrar/ETHRegistrarController.sol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RONRegistrarController.sol\":\"RONRegistrarController\"},\"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/\",\":@fdk-0.3.0-beta/=dependencies/@fdk-0.3.0-beta/\",\":@fdk/=dependencies/@fdk-0.3.0-beta/script/\",\":@openzeppelin-contracts-4.9.3/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-4.9.3/\",\":@pythnetwork-pyth-sdk-solidity-2.2.0/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@pythnetwork/=dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/\",\":@rns-contracts/=src/\",\":@solady/=dependencies/@fdk-0.3.0-beta/dependencies/solady-0.0.206/src/\",\":buffer/=lib/buffer/contracts/\",\":contract-libs/=lib/contract-libs/src/\",\":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/=dependencies/@fdk-0.3.0-beta/dependencies/forge-std-1.8.2/src/\",\":foundry-deployment-kit/=lib/foundry-deployment-kit/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\",\":solady/=lib/solady/\"]},\"sources\":{\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n /**\\n * @dev Emitted when the pause is triggered by `account`.\\n */\\n event Paused(address account);\\n\\n /**\\n * @dev Emitted when the pause is lifted by `account`.\\n */\\n event Unpaused(address account);\\n\\n bool private _paused;\\n\\n /**\\n * @dev Initializes the contract in unpaused state.\\n */\\n constructor() {\\n _paused = false;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is not paused.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n modifier whenNotPaused() {\\n _requireNotPaused();\\n _;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is paused.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n modifier whenPaused() {\\n _requirePaused();\\n _;\\n }\\n\\n /**\\n * @dev Returns true if the contract is paused, and false otherwise.\\n */\\n function paused() public view virtual returns (bool) {\\n return _paused;\\n }\\n\\n /**\\n * @dev Throws if the contract is paused.\\n */\\n function _requireNotPaused() internal view virtual {\\n require(!paused(), \\\"Pausable: paused\\\");\\n }\\n\\n /**\\n * @dev Throws if the contract is not paused.\\n */\\n function _requirePaused() internal view virtual {\\n require(paused(), \\\"Pausable: not paused\\\");\\n }\\n\\n /**\\n * @dev Triggers stopped state.\\n *\\n * Requirements:\\n *\\n * - The contract must not be paused.\\n */\\n function _pause() internal virtual whenNotPaused {\\n _paused = true;\\n emit Paused(_msgSender());\\n }\\n\\n /**\\n * @dev Returns to normal state.\\n *\\n * Requirements:\\n *\\n * - The contract must be paused.\\n */\\n function _unpause() internal virtual whenPaused {\\n _paused = false;\\n emit Unpaused(_msgSender());\\n }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"dependencies/@openzeppelin-contracts-4.9.3/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n // Booleans are more expensive than uint256 or any type that takes up a full\\n // word because each write operation emits an extra SLOAD to first read the\\n // slot's contents, replace the bits taken up by the boolean, and then write\\n // back. This is the compiler's defense against contract upgrades and\\n // pointer aliasing, and it cannot be disabled.\\n\\n // The values being non-zero value makes deployment a bit more expensive,\\n // but in exchange the refund on every call to nonReentrant will be lower in\\n // amount. Since refunds are capped to a percentage of the total\\n // transaction's gas, it is best to keep them low in cases like this one, to\\n // increase the likelihood of the full refund coming into effect.\\n uint256 private constant _NOT_ENTERED = 1;\\n uint256 private constant _ENTERED = 2;\\n\\n uint256 private _status;\\n\\n constructor() {\\n _status = _NOT_ENTERED;\\n }\\n\\n /**\\n * @dev Prevents a contract from calling itself, directly or indirectly.\\n * Calling a `nonReentrant` function from another `nonReentrant`\\n * function is not supported. It is possible to prevent this from happening\\n * by making the `nonReentrant` function external, and making it call a\\n * `private` function that does the actual work.\\n */\\n modifier nonReentrant() {\\n _nonReentrantBefore();\\n _;\\n _nonReentrantAfter();\\n }\\n\\n function _nonReentrantBefore() private {\\n // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n // Any calls to nonReentrant after this point will fail\\n _status = _ENTERED;\\n }\\n\\n function _nonReentrantAfter() private {\\n // By storing the original value once again, a refund is triggered (see\\n // https://eips.ethereum.org/EIPS/eip-2200)\\n _status = _NOT_ENTERED;\\n }\\n\\n /**\\n * @dev Returns true if the reentrancy guard is currently set to \\\"entered\\\", which indicates there is a\\n * `nonReentrant` function in the call stack.\\n */\\n function _reentrancyGuardEntered() internal view returns (bool) {\\n return _status == _ENTERED;\\n }\\n}\\n\",\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/utils/math/SafeMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n// CAUTION\\n// This version of SafeMath should only be used with Solidity 0.8 or later,\\n// because it relies on the compiler's built in overflow checks.\\n\\n/**\\n * @dev Wrappers over Solidity's arithmetic operations.\\n *\\n * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler\\n * now has built in overflow checking.\\n */\\nlibrary SafeMath {\\n /**\\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n uint256 c = a + b;\\n if (c < a) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b > a) return (false, 0);\\n return (true, a - b);\\n }\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\\n // benefit is lost if 'b' is also tested.\\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\\n if (a == 0) return (true, 0);\\n uint256 c = a * b;\\n if (c / a != b) return (false, 0);\\n return (true, c);\\n }\\n }\\n\\n /**\\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a / b);\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\\n *\\n * _Available since v3.4._\\n */\\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\\n unchecked {\\n if (b == 0) return (false, 0);\\n return (true, a % b);\\n }\\n }\\n\\n /**\\n * @dev Returns the addition of two unsigned integers, reverting on\\n * overflow.\\n *\\n * Counterpart to Solidity's `+` operator.\\n *\\n * Requirements:\\n *\\n * - Addition cannot overflow.\\n */\\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a + b;\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, reverting on\\n * overflow (when the result is negative).\\n *\\n * Counterpart to Solidity's `-` operator.\\n *\\n * Requirements:\\n *\\n * - Subtraction cannot overflow.\\n */\\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a - b;\\n }\\n\\n /**\\n * @dev Returns the multiplication of two unsigned integers, reverting on\\n * overflow.\\n *\\n * Counterpart to Solidity's `*` operator.\\n *\\n * Requirements:\\n *\\n * - Multiplication cannot overflow.\\n */\\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a * b;\\n }\\n\\n /**\\n * @dev Returns the integer division of two unsigned integers, reverting on\\n * division by zero. The result is rounded towards zero.\\n *\\n * Counterpart to Solidity's `/` operator.\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a / b;\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\\n * reverting when dividing by zero.\\n *\\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\\n * opcode (which leaves remaining gas untouched) while Solidity uses an\\n * invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\\n return a % b;\\n }\\n\\n /**\\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\\n * overflow (when the result is negative).\\n *\\n * CAUTION: This function is deprecated because it requires allocating memory for the error\\n * message unnecessarily. For custom revert reasons use {trySub}.\\n *\\n * Counterpart to Solidity's `-` operator.\\n *\\n * Requirements:\\n *\\n * - Subtraction cannot overflow.\\n */\\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b <= a, errorMessage);\\n return a - b;\\n }\\n }\\n\\n /**\\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\\n * division by zero. The result is rounded towards zero.\\n *\\n * Counterpart to Solidity's `/` operator. Note: this function uses a\\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\\n * uses an invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b > 0, errorMessage);\\n return a / b;\\n }\\n }\\n\\n /**\\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\\n * reverting with custom message when dividing by zero.\\n *\\n * CAUTION: This function is deprecated because it requires allocating memory for the error\\n * message unnecessarily. For custom revert reasons use {tryMod}.\\n *\\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\\n * opcode (which leaves remaining gas untouched) while Solidity uses an\\n * invalid opcode to revert (consuming all remaining gas).\\n *\\n * Requirements:\\n *\\n * - The divisor cannot be zero.\\n */\\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\\n unchecked {\\n require(b > 0, errorMessage);\\n return a % b;\\n }\\n }\\n}\\n\",\"keccak256\":\"0x58b21219689909c4f8339af00813760337f7e2e7f169a97fe49e2896dcfb3b9a\",\"license\":\"MIT\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@openzeppelin-contracts-4.9.3/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\"},\"dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/IPyth.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\nimport \\\"./PythStructs.sol\\\";\\nimport \\\"./IPythEvents.sol\\\";\\n\\n/// @title Consume prices from the Pyth Network (https://pyth.network/).\\n/// @dev Please refer to the guidance at https://docs.pyth.network/consumers/best-practices for how to consume prices safely.\\n/// @author Pyth Data Association\\ninterface IPyth is IPythEvents {\\n /// @notice Returns the period (in seconds) that a price feed is considered valid since its publish time\\n function getValidTimePeriod() external view returns (uint validTimePeriod);\\n\\n /// @notice Returns the price and confidence interval.\\n /// @dev Reverts if the price has not been updated within the last `getValidTimePeriod()` seconds.\\n /// @param id The Pyth Price Feed ID of which to fetch the price and confidence interval.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPrice(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price and confidence interval.\\n /// @dev Reverts if the EMA price is not available.\\n /// @param id The Pyth Price Feed ID of which to fetch the EMA price and confidence interval.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPrice(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the price of a price feed without any sanity checks.\\n /// @dev This function returns the most recent price update in this contract without any recency checks.\\n /// This function is unsafe as the returned price update may be arbitrarily far in the past.\\n ///\\n /// Users of this function should check the `publishTime` in the price to ensure that the returned price is\\n /// sufficiently recent for their application. If you are considering using this function, it may be\\n /// safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPriceUnsafe(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the price that is no older than `age` seconds of the current time.\\n /// @dev This function is a sanity-checked version of `getPriceUnsafe` which is useful in\\n /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\\n /// recently.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getPriceNoOlderThan(\\n bytes32 id,\\n uint age\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\\n /// @dev This function returns the same price as `getEmaPrice` in the case where the price is available.\\n /// However, if the price is not recent this function returns the latest available price.\\n ///\\n /// The returned price can be from arbitrarily far in the past; this function makes no guarantees that\\n /// the returned price is recent or useful for any particular application.\\n ///\\n /// Users of this function should check the `publishTime` in the price to ensure that the returned price is\\n /// sufficiently recent for their application. If you are considering using this function, it may be\\n /// safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPriceUnsafe(\\n bytes32 id\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Returns the exponentially-weighted moving average price that is no older than `age` seconds\\n /// of the current time.\\n /// @dev This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in\\n /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\\n /// recently.\\n /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely.\\n function getEmaPriceNoOlderThan(\\n bytes32 id,\\n uint age\\n ) external view returns (PythStructs.Price memory price);\\n\\n /// @notice Update price feeds with given update messages.\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n /// Prices will be updated if they are more recent than the current stored prices.\\n /// The call will succeed even if the update is not the most recent.\\n /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid.\\n /// @param updateData Array of price update data.\\n function updatePriceFeeds(bytes[] calldata updateData) external payable;\\n\\n /// @notice Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is\\n /// necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the\\n /// given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`.\\n ///\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n ///\\n /// `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime\\n /// of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have\\n /// a newer or equal publish time than the given publish time, it will reject the transaction to save gas.\\n /// Otherwise, it calls updatePriceFeeds method to update the prices.\\n ///\\n /// @dev Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid.\\n /// @param updateData Array of price update data.\\n /// @param priceIds Array of price ids.\\n /// @param publishTimes Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]`\\n function updatePriceFeedsIfNecessary(\\n bytes[] calldata updateData,\\n bytes32[] calldata priceIds,\\n uint64[] calldata publishTimes\\n ) external payable;\\n\\n /// @notice Returns the required fee to update an array of price updates.\\n /// @param updateData Array of price update data.\\n /// @return feeAmount The required fee in Wei.\\n function getUpdateFee(\\n bytes[] calldata updateData\\n ) external view returns (uint feeAmount);\\n\\n /// @notice Parse `updateData` and return price feeds of the given `priceIds` if they are all published\\n /// within `minPublishTime` and `maxPublishTime`.\\n ///\\n /// You can use this method if you want to use a Pyth price at a fixed time and not the most recent price;\\n /// otherwise, please consider using `updatePriceFeeds`. This method does not store the price updates on-chain.\\n ///\\n /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling\\n /// `getUpdateFee` with the length of the `updateData` array.\\n ///\\n ///\\n /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid or there is\\n /// no update for any of the given `priceIds` within the given time range.\\n /// @param updateData Array of price update data.\\n /// @param priceIds Array of price ids.\\n /// @param minPublishTime minimum acceptable publishTime for the given `priceIds`.\\n /// @param maxPublishTime maximum acceptable publishTime for the given `priceIds`.\\n /// @return priceFeeds Array of the price feeds corresponding to the given `priceIds` (with the same order).\\n function parsePriceFeedUpdates(\\n bytes[] calldata updateData,\\n bytes32[] calldata priceIds,\\n uint64 minPublishTime,\\n uint64 maxPublishTime\\n ) external payable returns (PythStructs.PriceFeed[] memory priceFeeds);\\n}\\n\",\"keccak256\":\"0x949c65c65fea0578c09a6fc068e09ed1165adede2c835984cefcb25d76de1de2\",\"license\":\"Apache-2.0\"},\"dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/IPythEvents.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\n/// @title IPythEvents contains the events that Pyth contract emits.\\n/// @dev This interface can be used for listening to the updates for off-chain and testing purposes.\\ninterface IPythEvents {\\n /// @dev Emitted when the price feed with `id` has received a fresh update.\\n /// @param id The Pyth Price Feed ID.\\n /// @param publishTime Publish time of the given price update.\\n /// @param price Price of the given price update.\\n /// @param conf Confidence interval of the given price update.\\n event PriceFeedUpdate(\\n bytes32 indexed id,\\n uint64 publishTime,\\n int64 price,\\n uint64 conf\\n );\\n\\n /// @dev Emitted when a batch price update is processed successfully.\\n /// @param chainId ID of the source chain that the batch price update comes from.\\n /// @param sequenceNumber Sequence number of the batch price update.\\n event BatchPriceFeedUpdate(uint16 chainId, uint64 sequenceNumber);\\n}\\n\",\"keccak256\":\"0x048a35526c2e77d107d43ba336f1dcf31f64cef25ba429ae1f7a0fbc11c23320\",\"license\":\"Apache-2.0\"},\"dependencies/@pythnetwork-pyth-sdk-solidity-2.2.0/PythStructs.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.0;\\n\\ncontract PythStructs {\\n // A price with a degree of uncertainty, represented as a price +- a confidence interval.\\n //\\n // The confidence interval roughly corresponds to the standard error of a normal distribution.\\n // Both the price and confidence are stored in a fixed-point numeric representation,\\n // `x * (10^expo)`, where `expo` is the exponent.\\n //\\n // Please refer to the documentation at https://docs.pyth.network/consumers/best-practices for how\\n // to how this price safely.\\n struct Price {\\n // Price\\n int64 price;\\n // Confidence interval around the price\\n uint64 conf;\\n // Price exponent\\n int32 expo;\\n // Unix timestamp describing when the price was published\\n uint publishTime;\\n }\\n\\n // PriceFeed represents a current aggregate price from pyth publisher feeds.\\n struct PriceFeed {\\n // The price ID.\\n bytes32 id;\\n // Latest available price\\n Price price;\\n // Latest available exponentially-weighted moving average price\\n Price emaPrice;\\n }\\n}\\n\",\"keccak256\":\"0x95ff0a6d64517348ef604b8bcf246b561a9445d7e607b8f48491c617cfda9b65\",\"license\":\"Apache-2.0\"},\"src/RONRegistrarController.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Initializable } from \\\"@openzeppelin/contracts/proxy/utils/Initializable.sol\\\";\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { AccessControlEnumerable } from \\\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\\\";\\nimport { IPublicResolver } from \\\"./interfaces/resolvers/IPublicResolver.sol\\\";\\nimport {\\n INSUnified,\\n INameChecker,\\n INSDomainPrice,\\n INSReverseRegistrar,\\n IRONRegistrarController\\n} from \\\"./interfaces/IRONRegistrarController.sol\\\";\\nimport { LibString } from \\\"./libraries/LibString.sol\\\";\\nimport { LibRNSDomain } from \\\"./libraries/LibRNSDomain.sol\\\";\\nimport { RONTransferHelper } from \\\"./libraries/transfers/RONTransferHelper.sol\\\";\\n\\n/**\\n * @title RONRegistrarController\\n * @notice Customized version of ETHRegistrarController: https://github.com/ensdomains/ens-contracts/blob/45455f1229556ed4f416ef7225d4caea2c1bc0b5/contracts/ethregistrar/ETHRegistrarController.sol\\n * @dev A registrar controller for registering and renewing names at fixed cost.\\n */\\ncontract RONRegistrarController is\\n Pausable,\\n Initializable,\\n ReentrancyGuard,\\n AccessControlEnumerable,\\n IRONRegistrarController\\n{\\n using LibString for string;\\n using LibRNSDomain for string;\\n\\n /// @dev The minimum domain name's length\\n uint8 public constant MIN_DOMAIN_LENGTH = 3;\\n /// @inheritdoc IRONRegistrarController\\n bytes32 public constant PAUSER_ROLE = keccak256(\\\"PAUSER_ROLE\\\");\\n /// @inheritdoc IRONRegistrarController\\n bytes32 public constant OPERATOR_ROLE = keccak256(\\\"OPERATOR_ROLE\\\");\\n\\n /// @dev Gap for upgradeability.\\n uint256[50] private ____gap;\\n\\n /// @dev Minimum duration between commitment and registration in second(s).\\n uint256 internal _minCommitmentAge;\\n /// @dev Maximum duration between commitment and registration in second(s).\\n uint256 internal _maxCommitmentAge;\\n /// @dev Min registration duration\\n uint256 internal _minRegistrationDuration;\\n\\n /// @dev The treasury address.\\n address payable internal _treasury;\\n /// @dev The rns unified contract.\\n INSUnified internal _rnsUnified;\\n /// @dev The namechecker contract.\\n INameChecker internal _nameChecker;\\n /// @dev The price oracle.\\n INSDomainPrice internal _priceOracle;\\n /// @dev The reverse registrar contract.\\n INSReverseRegistrar internal _reverseRegistrar;\\n\\n /// @dev Mapping from commitment hash => timestamp that commitment made.\\n mapping(bytes32 commitment => uint256 timestamp) internal _committedAt;\\n /// @dev Mapping id => owner => flag indicating whether the owner is whitelisted to buy protected name\\n mapping(uint256 id => mapping(address owner => bool)) internal _protectedNamesWhitelisted;\\n\\n modifier onlyAvailable(string memory name) {\\n _requireAvailable(name);\\n _;\\n }\\n\\n constructor() payable {\\n _disableInitializers();\\n }\\n\\n function initialize(\\n address admin,\\n address pauser,\\n address payable treasury,\\n uint256 maxCommitmentAge,\\n uint256 minCommitmentAge,\\n uint256 minRegistrationDuration,\\n INSUnified rnsUnified,\\n INameChecker nameChecker,\\n INSDomainPrice priceOracle,\\n INSReverseRegistrar reverseRegistrar\\n ) external initializer {\\n _setupRole(PAUSER_ROLE, pauser);\\n _setupRole(DEFAULT_ADMIN_ROLE, admin);\\n\\n _setPriceOracle(priceOracle);\\n _setMinRegistrationDuration(minRegistrationDuration);\\n _setCommitmentAge(minCommitmentAge, maxCommitmentAge);\\n _setTreasury(treasury);\\n\\n _rnsUnified = rnsUnified;\\n _nameChecker = nameChecker;\\n _reverseRegistrar = reverseRegistrar;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function pause() external onlyRole(PAUSER_ROLE) {\\n _pause();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function unpause() external onlyRole(PAUSER_ROLE) {\\n _unpause();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getMinRegistrationDuration() public view returns (uint256) {\\n return _minRegistrationDuration;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function rentPrice(string memory name, uint64 duration) public view returns (uint256 usdPrice, uint256 ronPrice) {\\n (INSDomainPrice.UnitPrice memory basePrice, INSDomainPrice.UnitPrice memory tax) =\\n _priceOracle.getRenewalFee(name, duration);\\n usdPrice = basePrice.usd + tax.usd;\\n ronPrice = basePrice.ron + tax.ron;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function valid(string memory name) public view returns (bool) {\\n return name.strlen() >= MIN_DOMAIN_LENGTH && !_nameChecker.forbidden(name);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function available(string memory name) public view returns (bool) {\\n return valid(name) && _rnsUnified.available(computeId(name));\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function computeCommitment(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) public view onlyAvailable(name) returns (bytes32) {\\n if (data.length != 0 && resolver == address(0)) revert ResolverRequiredWhenDataSupplied();\\n return keccak256(abi.encode(computeId(name), owner, duration, secret, resolver, data, reverseRecord));\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function computeId(string memory name) public pure returns (uint256 id) {\\n return LibRNSDomain.toId(LibRNSDomain.RON_ID, name);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function commit(bytes32 commitment) external whenNotPaused {\\n if (_committedAt[commitment] + _maxCommitmentAge >= block.timestamp) revert UnexpiredCommitmentExists(commitment);\\n _committedAt[commitment] = block.timestamp;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setMinRegistrationDuration(uint256 duration) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setMinRegistrationDuration(duration);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function register(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable whenNotPaused nonReentrant {\\n uint256 id = computeId(name);\\n if (_rnsUnified.getRecord(id).mut.protected) revert ErrRequestedForProtectedName(name);\\n\\n bytes32 commitHash = computeCommitment({\\n name: name,\\n owner: owner,\\n duration: duration,\\n secret: secret,\\n resolver: resolver,\\n data: data,\\n reverseRecord: reverseRecord\\n });\\n _validateCommitment(duration, commitHash);\\n\\n (uint256 usdPrice, uint256 ronPrice) = _handlePrice(name, duration);\\n _register(name, owner, duration, resolver, data, reverseRecord, usdPrice, ronPrice);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function renew(string calldata name, uint64 duration) external payable whenNotPaused nonReentrant {\\n (, uint256 ronPrice) = rentPrice(name, duration);\\n if (msg.value < ronPrice) revert InsufficientValue();\\n uint256 remainAmount = msg.value - ronPrice;\\n\\n uint256 id = computeId(name);\\n uint64 expiryTime = _rnsUnified.renew(id, duration);\\n emit NameRenewed(name, id, ronPrice, expiryTime);\\n\\n if (remainAmount != 0) RONTransferHelper.safeTransfer(payable(_msgSender()), remainAmount);\\n _transferRONToTreasury();\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function registerProtectedName(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable whenNotPaused nonReentrant onlyAvailable(name) {\\n if (!available(name)) revert NameNotAvailable(name);\\n uint256 id = computeId(name);\\n bool protected = _rnsUnified.getRecord(id).mut.protected;\\n bool whitelisted = _protectedNamesWhitelisted[id][owner];\\n if (!protected || !whitelisted) revert ErrInvalidRegisterProtectedName(name, owner, protected, whitelisted);\\n\\n (uint256 usdPrice, uint256 ronPrice) = _handlePrice(name, duration);\\n _register(name, owner, duration, resolver, data, reverseRecord, usdPrice, ronPrice);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function bulkWhitelistProtectedNames(uint256[] calldata ids, address[] calldata owners, bool status)\\n external\\n onlyRole(OPERATOR_ROLE)\\n {\\n uint256 length = ids.length;\\n if (length == 0 || length != owners.length) revert InvalidArrayLength();\\n\\n for (uint256 i; i < length;) {\\n _protectedNamesWhitelisted[ids[i]][owners[i]] = status;\\n\\n unchecked {\\n ++i;\\n }\\n }\\n\\n emit ProtectedNamesWhitelisted(_msgSender(), ids, owners, status);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getWhitelistProtectedNameStatus(uint256 id, address owner) external view returns (bool status) {\\n return _protectedNamesWhitelisted[id][owner];\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setTreasury(address payable addr) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setTreasury(addr);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setCommitmentAge(minCommitmentAge, maxCommitmentAge);\\n }\\n\\n /**\\n * @dev Internal function to update the commitment age range.\\n * Requirements:\\n * - The `maxCommitmentAge` must be less than or equal to the current block timestamp.\\n * - The `maxCommitmentAge` must be greater than the `minCommitmentAge`.\\n * Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\\n * @param minCommitmentAge The minimum commitment age in seconds.\\n * @param maxCommitmentAge The maximum commitment age in seconds.\\n */\\n function _setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) internal {\\n if (maxCommitmentAge > block.timestamp) revert MaxCommitmentAgeTooHigh();\\n if (maxCommitmentAge <= minCommitmentAge) revert MaxCommitmentAgeTooLow();\\n\\n _minCommitmentAge = minCommitmentAge;\\n _maxCommitmentAge = maxCommitmentAge;\\n\\n emit CommitmentAgeUpdated(_msgSender(), minCommitmentAge, maxCommitmentAge);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function setPriceOracle(INSDomainPrice priceOracle) external onlyRole(DEFAULT_ADMIN_ROLE) {\\n _setPriceOracle(priceOracle);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getTreasury() external view returns (address) {\\n return _treasury;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getCommitmentAgeRange() external view returns (uint256 minCommitmentAge, uint256 maxCommitmentAge) {\\n return (_minCommitmentAge, _maxCommitmentAge);\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getRNSUnified() external view returns (INSUnified) {\\n return _rnsUnified;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getPriceOracle() external view returns (INSDomainPrice) {\\n return _priceOracle;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getNameChecker() external view returns (INameChecker) {\\n return _nameChecker;\\n }\\n\\n /**\\n * @inheritdoc IRONRegistrarController\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar) {\\n return _reverseRegistrar;\\n }\\n\\n /**\\n * @dev Validates commitment.\\n *\\n * Requirements:\\n * - The duration must larger than or equal to minimum registration duration.\\n * - The passed duration must in a valid range.\\n */\\n function _validateCommitment(uint64 duration, bytes32 commitment) internal {\\n if (duration < _minRegistrationDuration) revert DurationTooShort(duration);\\n\\n uint256 passedDuration = block.timestamp - _committedAt[commitment];\\n if (passedDuration < _minCommitmentAge) revert CommitmentTooNew(commitment);\\n if (_maxCommitmentAge < passedDuration) revert CommitmentTooOld(commitment);\\n\\n delete _committedAt[commitment];\\n }\\n\\n /**\\n * @dev Sets minimum registration duration.\\n * Emits a {MinRegistrationDurationUpdated} event indicating the successful update of the registration duration.\\n */\\n function _setMinRegistrationDuration(uint256 duration) internal {\\n _minRegistrationDuration = duration;\\n emit MinRegistrationDurationUpdated(_msgSender(), duration);\\n }\\n\\n /**\\n * @dev Sets data into resolver address contract.\\n */\\n function _setRecords(address resolverAddress, uint256 id, bytes[] calldata data) internal {\\n IPublicResolver(resolverAddress).multicallWithNodeCheck(bytes32(id), data);\\n }\\n\\n /**\\n * @dev Sets data into reverse registrar.\\n */\\n function _setReverseRecord(string memory name, address owner) internal {\\n _reverseRegistrar.setNameForAddr(owner, string.concat(name, \\\".ron\\\"));\\n }\\n\\n /**\\n * @dev Helper method to take fee into treasury address.\\n */\\n function _transferRONToTreasury() internal {\\n RONTransferHelper.safeTransfer(_treasury, address(this).balance);\\n }\\n\\n /**\\n * @dev Helper method to take renewal fee of a name.\\n */\\n function _handlePrice(string memory name, uint64 duration) internal returns (uint256 usdPrice, uint256 ronPrice) {\\n (usdPrice, ronPrice) = rentPrice(name, duration);\\n if (msg.value < ronPrice) revert InsufficientValue();\\n\\n unchecked {\\n uint256 remainAmount = msg.value - ronPrice;\\n if (remainAmount != 0) RONTransferHelper.safeTransfer(payable(_msgSender()), remainAmount);\\n }\\n\\n _transferRONToTreasury();\\n }\\n\\n /**\\n * @dev Helper method to register a name for owner.\\n *\\n * Emits an event {NameRegistered}.\\n */\\n function _register(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord,\\n uint256 usdPrice,\\n uint256 ronPrice\\n ) internal {\\n (uint64 expiryTime, uint256 id) = _rnsUnified.mint(LibRNSDomain.RON_ID, name, resolver, owner, duration);\\n if (data.length != 0) _setRecords(resolver, id, data);\\n if (reverseRecord) _setReverseRecord(name, owner);\\n emit NameRegistered(name, id, owner, ronPrice, usdPrice, expiryTime);\\n }\\n\\n /**\\n * @dev Helper method to update RNSDomainPrice contract.\\n *\\n * Emits an event {DomainPriceUpdated}.\\n */\\n function _setPriceOracle(INSDomainPrice priceOracle) internal {\\n _priceOracle = priceOracle;\\n emit DomainPriceUpdated(_msgSender(), priceOracle);\\n }\\n\\n /**\\n * @dev Helper method to update treasury address.\\n *\\n * Emits an event {TreasuryUpdated}.\\n */\\n function _setTreasury(address payable addr) internal {\\n if (addr == address(0x0)) revert NullAddress();\\n\\n _treasury = addr;\\n\\n emit TreasuryUpdated(addr);\\n }\\n\\n /**\\n * @dev Helper method to check if a domain name is available for register.\\n */\\n function _requireAvailable(string memory name) internal view {\\n if (!available(name)) revert NameNotAvailable(name);\\n }\\n}\\n\",\"keccak256\":\"0x364878c7a629a72d59891dd370f6826eb75c1afb5bf1113c2ef6931233197766\",\"license\":\"MIT\"},\"src/interfaces/IMulticallable.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.0;\\n\\n/**\\n * @notice To multi-call to a specified contract which has multicall interface:\\n *\\n * ```solidity\\n * interface IMock is IMulticallable {\\n * function foo() external;\\n * function bar() external;\\n * }\\n *\\n * bytes[] memory calldatas = new bytes[](2);\\n * calldatas[0] = abi.encodeCall(IMock.foo,());\\n * calldatas[1] = abi.encodeCall(IMock.bar,());\\n * IMock(target).multicall(calldatas);\\n * ```\\n */\\ninterface IMulticallable {\\n /**\\n * @dev Executes bulk action to the original contract.\\n * Reverts if there is a single call failed.\\n *\\n * @param data The calldata to original contract.\\n *\\n */\\n function multicall(bytes[] calldata data) external returns (bytes[] memory results);\\n\\n /**\\n * @dev Executes bulk action to the original contract.\\n *\\n * @param requireSuccess Flag to indicating whether the contract reverts if there is a single call failed.\\n * @param data The calldata to original contract.\\n *\\n */\\n function tryMulticall(bool requireSuccess, bytes[] calldata data) external returns (bytes[] memory results);\\n}\\n\",\"keccak256\":\"0x0e76578b0efeafdf33915d77d3f98145ac2f74cdd311db03a9b94d4aa566d107\",\"license\":\"UNLICENSED\"},\"src/interfaces/INSDomainPrice.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { PeriodScaler } from \\\"../libraries/math/PeriodScalingUtils.sol\\\";\\nimport { IPyth } from \\\"@pythnetwork/IPyth.sol\\\";\\n\\ninterface INSDomainPrice {\\n error InvalidArrayLength();\\n error RenewalFeeIsNotOverriden();\\n error TierIsNotOverriden();\\n error ExceedAuctionDomainExpiry();\\n\\n /// @dev The tier of a domain.\\n enum Tier {\\n Unknown,\\n Tier1,\\n Tier2,\\n Tier3\\n }\\n\\n struct RenewalFee {\\n uint256 labelLength;\\n uint256 fee;\\n }\\n\\n struct UnitPrice {\\n uint256 usd;\\n uint256 ron;\\n }\\n\\n /// @dev Emitted when the renewal reservation ratio is updated.\\n event TaxRatioUpdated(address indexed operator, uint256 indexed ratio);\\n /// @dev Emitted when the maximum length of renewal fee is updated.\\n event MaxRenewalFeeLengthUpdated(address indexed operator, uint256 indexed maxLength);\\n /// @dev Emitted when the renew fee is updated.\\n event RenewalFeeByLengthUpdated(address indexed operator, uint256 indexed labelLength, uint256 renewalFee);\\n /// @dev Emitted when the renew fee of a domain is overridden. Value of `inverseRenewalFee` is 0 when not overridden.\\n event RenewalFeeOverridingUpdated(address indexed operator, bytes32 indexed labelHash, uint256 inverseRenewalFee);\\n /// @dev Emitted when the tier of a domain is overridden.\\n event TierOverridingUpdated(address indexed operator, bytes32 indexed labelHash, Tier indexed tier);\\n\\n /// @dev Emitted when the domain price is updated.\\n event DomainPriceUpdated(\\n address indexed operator, bytes32 indexed labelHash, uint256 price, bytes32 indexed proofHash, uint256 setType\\n );\\n /// @dev Emitted when the rule to rescale domain price is updated.\\n event DomainPriceScaleRuleUpdated(address indexed operator, uint192 ratio, uint64 period);\\n\\n /// @dev Emitted when the Pyth Oracle config is updated.\\n event PythOracleConfigUpdated(\\n address indexed operator, IPyth indexed pyth, uint256 maxAcceptableAge, bytes32 indexed pythIdForRONUSD\\n );\\n\\n /**\\n * @dev Returns the Pyth oracle config.\\n */\\n function getPythOracleConfig() external view returns (IPyth pyth, uint256 maxAcceptableAge, bytes32 pythIdForRONUSD);\\n\\n /**\\n * @dev Sets the Pyth oracle config.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {PythOracleConfigUpdated}.\\n */\\n function setPythOracleConfig(IPyth pyth, uint256 maxAcceptableAge, bytes32 pythIdForRONUSD) external;\\n\\n /**\\n * @dev Returns the percentage to scale from domain price each period.\\n */\\n function getScaleDownRuleForDomainPrice() external view returns (PeriodScaler memory dpScaleRule);\\n\\n /**\\n * @dev Sets the percentage to scale from domain price each period.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {DomainPriceScaleRuleUpdated}.\\n *\\n * @notice Applies for the business rule: -x% each y seconds.\\n */\\n function setScaleDownRuleForDomainPrice(PeriodScaler calldata scaleRule) external;\\n\\n /**\\n * @dev Returns the renewal fee by lengths.\\n */\\n function getRenewalFeeByLengths() external view returns (RenewalFee[] memory renewalFees);\\n\\n /**\\n * @dev Sets the renewal fee by lengths\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits events {RenewalFeeByLengthUpdated}.\\n * Emits an event {MaxRenewalFeeLengthUpdated} optionally.\\n */\\n function setRenewalFeeByLengths(RenewalFee[] calldata renewalFees) external;\\n\\n /**\\n * @dev Returns tax ratio.\\n */\\n function getTaxRatio() external view returns (uint256 taxRatio);\\n\\n /**\\n * @dev Sets renewal reservation ratio.\\n *\\n * Requirements:\\n * - The method caller is admin.\\n *\\n * Emits an event {TaxRatioUpdated}.\\n */\\n function setTaxRatio(uint256 ratio) external;\\n\\n /**\\n * @dev Return the domain price.\\n * @param label The domain label to register (Eg, 'foo' for 'foo.ron').\\n */\\n function getDomainPrice(string memory label) external view returns (uint256 usdPrice, uint256 ronPrice);\\n\\n /**\\n * @dev Returns the renewal fee in USD and RON.\\n * @param label The domain label to register (Eg, 'foo' for 'foo.ron').\\n * @param duration Amount of second(s).\\n */\\n function getRenewalFee(string calldata label, uint256 duration)\\n external\\n view\\n returns (UnitPrice memory basePrice, UnitPrice memory tax);\\n\\n /**\\n * @dev Returns the tier of a label.\\n * @param label The domain label to register (Eg, 'foo' for 'foo.ron').\\n * @return tier The tier of the label.\\n */\\n function getTier(string calldata label) external view returns (Tier tier);\\n\\n /**\\n * @dev Returns the renewal fee of a label. Reverts if not overridden.\\n * @notice This method is to help developers check the domain renewal fee overriding. Consider using method\\n * {getRenewalFee} instead for full handling of renewal fees.\\n */\\n function getOverriddenRenewalFee(string memory label) external view returns (uint256 usdFee);\\n\\n /**\\n * @dev Returns the tier of a label. Reverts if not overridden.\\n * @notice This method is to help developers check the domain tier overriding. Consider using method {getTier} instead\\n * for full handling of tiers.\\n */\\n function getOverriddenTier(string memory label) external view returns (Tier tier);\\n\\n /**\\n * @dev Bulk override renewal fees.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n *\\n * Emits events {RenewalFeeOverridingUpdated}.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param usdPrices Array of prices in USD. Leave 2^256 - 1 to remove overriding.\\n */\\n function bulkOverrideRenewalFees(bytes32[] calldata lbHashes, uint256[] calldata usdPrices) external;\\n\\n /**\\n * @dev Bulk override tiers.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n *\\n * Emits events {TierOverridingUpdated}.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param tiers Array of tiers. Leave 2^256 - 1 to remove overriding.\\n */\\n function bulkOverrideTiers(bytes32[] calldata lbHashes, Tier[] calldata tiers) external;\\n\\n /**\\n * @dev Bulk try to set domain prices. Returns a boolean array indicating whether domain prices at the corresponding\\n * indexes if set or not.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n * - The price should be larger than current domain price or it will not be updated.\\n *\\n * Emits events {DomainPriceUpdated} optionally.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param ronPrices Array of prices in (W)RON token.\\n * @param proofHashes Array of proof hashes.\\n * @param setTypes Array of update types from the operator service.\\n */\\n function bulkTrySetDomainPrice(\\n bytes32[] calldata lbHashes,\\n uint256[] calldata ronPrices,\\n bytes32[] calldata proofHashes,\\n uint256[] calldata setTypes\\n ) external returns (bool[] memory updated);\\n\\n /**\\n * @dev Bulk override domain prices.\\n *\\n * Requirements:\\n * - The method caller is operator.\\n * - The input array lengths must be larger than 0 and the same.\\n *\\n * Emits events {DomainPriceUpdated}.\\n *\\n * @param lbHashes Array of label hashes. (Eg, ['foo'].map(keccak256) for 'foo.ron')\\n * @param ronPrices Array of prices in (W)RON token.\\n * @param proofHashes Array of proof hashes.\\n * @param setTypes Array of update types from the operator service.\\n */\\n function bulkSetDomainPrice(\\n bytes32[] calldata lbHashes,\\n uint256[] calldata ronPrices,\\n bytes32[] calldata proofHashes,\\n uint256[] calldata setTypes\\n ) external;\\n\\n /**\\n * @dev Returns the converted amount from USD to RON.\\n */\\n function convertUSDToRON(uint256 usdAmount) external view returns (uint256 ronAmount);\\n\\n /**\\n * @dev Returns the converted amount from RON to USD.\\n */\\n function convertRONToUSD(uint256 ronAmount) external view returns (uint256 usdAmount);\\n\\n /**\\n * @dev Value equals to keccak256(\\\"OPERATOR_ROLE\\\").\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the overrider role.\\n */\\n function OVERRIDER_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 (uint64);\\n\\n /**\\n * @dev Decimal for USD.\\n */\\n function USD_DECIMALS() external pure returns (uint8);\\n}\\n\",\"keccak256\":\"0x8788fdbb62a27ad604ade2ca281a1b76001b929245d4ef9117544636ac8ec545\",\"license\":\"MIT\"},\"src/interfaces/INSReverseRegistrar.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { IERC165 } from \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\nimport { INameResolver } from \\\"./resolvers/INameResolver.sol\\\";\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\n\\n/// @dev See https://eips.ethereum.org/EIPS/eip-181#registrar\\ninterface IERC181 {\\n /**\\n * @dev Claims the name hex(addr) + '.addr.reverse' for addr.\\n *\\n * @param addr The address to set as the addr of the reverse record in INS.\\n * @return id The INS node hash of the reverse record.\\n */\\n function claim(address addr) external returns (uint256 id);\\n\\n /**\\n * @dev Claims the name hex(owner) + '.addr.reverse' for owner and sets resolver.\\n *\\n * @param addr The address to set as the owner of the reverse record in INS.\\n * @param resolver The address of the resolver to set; 0 to leave unchanged.\\n * @return id The INS node hash of the reverse record.\\n */\\n function claimWithResolver(address addr, address resolver) external returns (uint256 id);\\n\\n /**\\n * @dev Sets the name record for the reverse INS record associated with the calling account. First updates the\\n * resolver to the default reverse resolver if necessary.\\n *\\n * @param name The name to set for this address.\\n * @return The INS node hash of the reverse record.\\n */\\n function setName(string memory name) external returns (uint256);\\n}\\n\\ninterface INSReverseRegistrar is IERC181, IERC165 {\\n /// @dev Error: The provided id is not child node of `ADDR_REVERSE_ID`\\n error InvalidId();\\n /// @dev Error: The contract is not authorized for minting or modifying domain hex(addr) + '.addr.reverse'.\\n error InvalidConfig();\\n /// @dev Error: The sender lacks the necessary permissions.\\n error Unauthorized();\\n /// @dev Error: The provided resolver address is null.\\n error NullAssignment();\\n\\n /// @dev Emitted when reverse node is claimed.\\n event ReverseClaimed(address indexed addr, uint256 indexed id);\\n /// @dev Emitted when the default resolver is changed.\\n event DefaultResolverChanged(INameResolver indexed resolver);\\n\\n /**\\n * @dev Returns the controller role.\\n */\\n function CONTROLLER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns default resolver.\\n */\\n function getDefaultResolver() external view returns (INameResolver);\\n\\n /**\\n * @dev Returns RNSUnified contract.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Sets default resolver.\\n *\\n * Requirement:\\n *\\n * - The method caller must be admin.\\n *\\n * Emitted an event {DefaultResolverChanged}.\\n *\\n */\\n function setDefaultResolver(INameResolver resolver) external;\\n\\n /**\\n * @dev Same as {IERC181-setName}.\\n */\\n function setNameForAddr(address addr, string memory name) external returns (uint256 id);\\n\\n /**\\n * @dev Returns address that the reverse node resolves for.\\n * Eg. node namehash('{addr}.addr.reverse') will always resolve for `addr`.\\n */\\n function getAddress(uint256 id) external view returns (address);\\n\\n /**\\n * @dev Returns the id hash for a given account's reverse records.\\n * @param addr The address to hash\\n * @return The INS node hash.\\n */\\n function computeId(address addr) external pure returns (uint256);\\n}\\n\",\"keccak256\":\"0x3b88e9ea1dd7c128244b5d0c69cee9dcadcb16b05a7e13416cc7b95c071b60a4\",\"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/interfaces/INameChecker.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\n/**\\n * @title INameChecker\\n * @dev The INameChecker interface provides functions for managing and checking substrings and forbidden words in strings.\\n */\\ninterface INameChecker {\\n /**\\n * @dev Emitted when the word range is updated.\\n * @param operator The address that updated the word range.\\n * @param min The minimum word length allowed.\\n * @param max The maximum word length allowed.\\n */\\n event WordRangeUpdated(address indexed operator, uint8 min, uint8 max);\\n\\n /**\\n * @dev Emitted when the forbidden words are updated.\\n * @param operator The address that updated the forbidden words list.\\n * @param wordCount The number of words in the list.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n event ForbiddenWordsUpdated(address indexed operator, uint256 wordCount, bool shouldForbid);\\n\\n /**\\n * @dev Returns an array of all substrings of a given string.\\n * @param str The input string to analyze.\\n * @return subStrings An array of all substrings.\\n */\\n function getAllSubStrings(string calldata str) external view returns (string[] memory subStrings);\\n\\n /**\\n * @dev Returns the total number of substrings for a given string length, as well as the minimum and maximum allowed word lengths.\\n * @param strlen The length of the input string.\\n * @return total The total number of substrings.\\n * @return min The minimum word length allowed.\\n * @return max The maximum word length allowed.\\n */\\n function totalSubString(uint256 strlen) external view returns (uint256 total, uint256 min, uint256 max);\\n\\n /**\\n * @dev Sets a list of forbidden words and specifies whether they should be forbidden.\\n * @param packedWords An array of packed word representations.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n function setForbiddenWords(uint256[] calldata packedWords, bool shouldForbid) external;\\n\\n /**\\n * @dev Sets a list of forbidden words and specifies whether they should be forbidden.\\n * @param words An array of raw words in string representations.\\n * @param shouldForbid Boolean indicating whether the specified words should be forbidden.\\n */\\n function setForbiddenWords(string[] calldata words, bool shouldForbid) external;\\n\\n /**\\n * @dev Sets the minimum and maximum word lengths allowed.\\n * @param min The minimum word length.\\n * @param max The maximum word length.\\n */\\n function setWordRange(uint8 min, uint8 max) external;\\n\\n /**\\n * @dev Retrieves the current minimum and maximum word lengths allowed.\\n * @return min The minimum word length allowed.\\n * @return max The maximum word length allowed.\\n */\\n function getWordRange() external view returns (uint8 min, uint8 max);\\n\\n /**\\n * @notice Checks if a given name contains any forbidden characters or blacklisted words.\\n * @param name The string to check.\\n * @return true if the name contains forbidden characters or blacklisted words, false otherwise.\\n */\\n function forbidden(string calldata name) external view returns (bool);\\n\\n /**\\n * @notice Checks if a given name contains any blacklisted words.\\n * @param name The string to check.\\n * @return true if the name contains blacklisted words, false otherwise.\\n */\\n function containsBlacklistedWord(string calldata name) external view returns (bool);\\n\\n /**\\n * @notice Checks if a given name contains any invalid characters.\\n * requirements:\\n * - all characters in name must in range [a-z] or [0-9].\\n * @param name The string to check.\\n * @return true if the name contains invalid characters, false otherwise.\\n */\\n function containsInvalidCharacter(string calldata name) external pure returns (bool);\\n\\n /**\\n * @dev Packs a string into a single word representation.\\n * @param str The string to be packed.\\n * @notice Returns `uint256(0)` if the length is zero or greater than 31.\\n * @return packed The packed value of the input string.\\n */\\n function pack(string memory str) external pure returns (uint256 packed);\\n\\n /**\\n * @dev Packs an array of strings into their single word representations.\\n * @param strs The array of strings to be packed.\\n * @notice Returns an array of packed values, along with the minimum and maximum string lengths.\\n * @return packeds An array containing the packed values of the input strings.\\n */\\n function packBulk(string[] memory strs) external pure returns (uint256[] memory packeds);\\n}\\n\",\"keccak256\":\"0x9f2b9f08f8d60f565f93925ad64353f01feaad671440d865f45008d1304d4794\",\"license\":\"MIT\"},\"src/interfaces/IRONRegistrarController.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"./INSUnified.sol\\\";\\nimport { INSDomainPrice } from \\\"./INSDomainPrice.sol\\\";\\nimport { INameChecker } from \\\"./INameChecker.sol\\\";\\nimport { INSReverseRegistrar } from \\\"./INSReverseRegistrar.sol\\\";\\n\\n/**\\n * @title IRONRegistrarController\\n * @dev Interface for the Registrar Controller contract that manages the registration, renewal, and commitment of RNS\\n * names.\\n */\\ninterface IRONRegistrarController {\\n /// @dev Error: The provided commitment timestamp is too new for registration.\\n error CommitmentTooNew(bytes32 commitment);\\n /// @dev Error: The provided commitment timestamp is too old for registration.\\n error CommitmentTooOld(bytes32 commitment);\\n /// @dev Error: The requested name is not available for registration.\\n error NameNotAvailable(string name);\\n /// @dev Error: The requested duration for registration is too short.\\n error DurationTooShort(uint64 duration);\\n /// @dev Error: A resolver is required when additional data is supplied during registration.\\n error ResolverRequiredWhenDataSupplied();\\n /// @dev Error: An unexpired commitment already exists for the given commitment.\\n error UnexpiredCommitmentExists(bytes32 commitment);\\n /// @dev Error: Insufficient value (RON) provided for registration.\\n error InsufficientValue();\\n /// @dev Error: The sender is not authorized for the given RNS node.\\n error Unauthorized(bytes32 node);\\n /// @dev Error: The maximum commitment age is set too low.\\n error MaxCommitmentAgeTooLow();\\n /// @dev Error: The maximum commitment age is set too high.\\n error MaxCommitmentAgeTooHigh();\\n /// @dev Thrown when some one requests for protected names\\n error ErrRequestedForProtectedName(string name);\\n /// @dev Thrown when received invalid params for registering protected name\\n error ErrInvalidRegisterProtectedName(string name, address requestOwner, bool nameProtected, bool ownerWhitelisted);\\n /// @dev Thrown when received invalid array length\\n error InvalidArrayLength();\\n /// @dev Thrown when treasury address is set to null\\n error NullAddress();\\n\\n /**\\n * @dev Emitted when the min registration duration is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param duration The new duration in seconds.\\n */\\n event MinRegistrationDurationUpdated(address indexed operator, uint256 duration);\\n\\n /// @dev Emitted when the treasury is updated.\\n event TreasuryUpdated(address indexed addr);\\n\\n /**\\n * @dev Emitted when RNSDomainPrice contract is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param newDomainPrice The new duration domain price contract.\\n */\\n event DomainPriceUpdated(address indexed operator, INSDomainPrice newDomainPrice);\\n\\n /**\\n * @dev Emitted when the commitment age range is updated.\\n * @param operator The address of the operator who triggered the update.\\n * @param minCommitmentAge The new minimum commitment age in seconds.\\n * @param maxCommitmentAge The new maximum commitment age in seconds.\\n */\\n event CommitmentAgeUpdated(address indexed operator, uint256 minCommitmentAge, uint256 maxCommitmentAge);\\n\\n /**\\n * @dev Emitted when a new name is successfully registered.\\n * @param name The registered name.\\n * @param id The namehash of the registered name.\\n * @param owner The owner of the registered name.\\n * @param ronPrice The cost of the registration in RON.\\n * @param usdPrice The cost of the registration in USD.\\n * @param expires The expiration timestamp of the registration.\\n */\\n event NameRegistered(\\n string name, uint256 indexed id, address indexed owner, uint256 ronPrice, uint256 usdPrice, uint64 expires\\n );\\n\\n /**\\n * @dev Emitted when a name is renewed.\\n * @param name The renewed name.\\n * @param id The namehash of the registered name.\\n * @param cost The cost of renewal.\\n * @param expires The new expiration timestamp after renewal.\\n */\\n event NameRenewed(string name, uint256 indexed id, uint256 cost, uint64 expires);\\n\\n /**\\n * @dev Emitted the whitelist status is updated for the owners of the protected names.\\n * @param operator The address of the operator who triggered the update.\\n */\\n event ProtectedNamesWhitelisted(address indexed operator, uint256[] ids, address[] owners, bool status);\\n\\n /**\\n * @dev Retrieves the rent price for a given name and duration.\\n * @param name The name for which to calculate the rent price.\\n * @param duration The duration of the rent.\\n * @return usdPrice rent price in usd.\\n * @return ronPrice rent price in ron.\\n */\\n function rentPrice(string memory name, uint64 duration) external view returns (uint256 usdPrice, uint256 ronPrice);\\n\\n /**\\n * @dev Calculate the corresponding id given RON_ID and name.\\n */\\n function computeId(string memory name) external pure returns (uint256 id);\\n\\n /**\\n * @dev Checks if a name is valid.\\n * @param name The name to check validity for.\\n * @return A boolean indicating whether the name is available.\\n */\\n function valid(string memory name) external view returns (bool);\\n\\n /**\\n * @dev Checks if a name is available for registration.\\n * @param name The name to check availability for.\\n * @return A boolean indicating whether the name is available.\\n */\\n function available(string memory name) external returns (bool);\\n\\n /**\\n * @dev Generates the commitment hash for a registration.\\n * @param name The name to be registered.\\n * @param owner The owner of the name.\\n * @param duration The duration of the registration.\\n * @param secret The secret used for the commitment.\\n * @param resolver The resolver contract address.\\n * @param data Additional data associated with the registration.\\n * @param reverseRecord Whether to use reverse record for additional data.\\n * @return The commitment hash.\\n */\\n function computeCommitment(\\n string memory name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external view returns (bytes32);\\n\\n /**\\n * @dev Commits to a registration using the commitment hash.\\n * @param commitment The commitment hash.\\n */\\n function commit(bytes32 commitment) external;\\n\\n /**\\n * @dev Registers a new name.\\n * @param name The name to be registered.\\n * @param owner The owner of the name.\\n * @param duration The duration of the registration.\\n * @param secret The secret used for the commitment.\\n * @param resolver The resolver contract address.\\n * @param data Additional data associated with the registration.\\n * @param reverseRecord Whether to use reverse record for additional data.\\n */\\n function register(\\n string calldata name,\\n address owner,\\n uint64 duration,\\n bytes32 secret,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable;\\n\\n /**\\n * @dev Renews an existing name registration.\\n * @param name The name to be renewed.\\n * @param duration The duration of the renewal.\\n */\\n function renew(string calldata name, uint64 duration) external payable;\\n\\n /**\\n * @dev Registers a protected name.\\n *\\n * Requirements:\\n * - The owner is whitelisted for registering.\\n */\\n function registerProtectedName(\\n string memory name,\\n address owner,\\n uint64 duration,\\n address resolver,\\n bytes[] calldata data,\\n bool reverseRecord\\n ) external payable;\\n\\n /**\\n * @dev Updates min registration duration.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function setMinRegistrationDuration(uint256 duration) external;\\n\\n /**\\n * @dev Sets the minimum and maximum commitment ages.\\n *\\n * Requirements:\\n * - Caller must have the DEFAULT_ADMIN_ROLE.\\n * - The `maxCommitmentAge` must be less than or equal to the current block timestamp.\\n * - The `maxCommitmentAge` must be greater than the `minCommitmentAge`.\\n *\\n * Emits a {CommitmentAgeUpdated} event indicating the successful update of the age range.\\n *\\n * @param minCommitmentAge The minimum commitment age in seconds.\\n * @param maxCommitmentAge The maximum commitment age in seconds.\\n */\\n function setCommitmentAge(uint256 minCommitmentAge, uint256 maxCommitmentAge) external;\\n\\n /**\\n * @dev Bulk (de)whitelist for buying protected names.\\n *\\n * Requirements:\\n * - The method caller is contract operator.\\n *\\n * Emits an event {ProtectedNamesWhitelisted}.\\n */\\n function bulkWhitelistProtectedNames(uint256[] calldata ids, address[] calldata owners, bool status) external;\\n\\n /**\\n * @dev Returns the whitelist status for registering protected name.\\n */\\n function getWhitelistProtectedNameStatus(uint256 id, address owner) external view returns (bool status);\\n\\n /**\\n * @dev Updates treasury address.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function setTreasury(address payable) external;\\n\\n /**\\n * @dev Updates price oracle address.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n */\\n function setPriceOracle(INSDomainPrice) external;\\n\\n /**\\n * @dev Returns the treasury address.\\n */\\n function getTreasury() external view returns (address);\\n\\n /**\\n * @dev Pauses the registrar controller's functionality.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function pause() external;\\n\\n /**\\n * @dev Unpauses the registrar controller's functionality.\\n *\\n * Requirements:\\n * - The caller must have the admin role.\\n *\\n */\\n function unpause() external;\\n\\n /**\\n * @dev Returns the role identifier for the pauser role.\\n */\\n function PAUSER_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the operator role.\\n */\\n function OPERATOR_ROLE() external pure returns (bytes32);\\n\\n /**\\n * @dev Returns the threshold for valid name length.\\n */\\n function MIN_DOMAIN_LENGTH() external view returns (uint8);\\n\\n /**\\n * @dev Returns the minimum registration duration.\\n */\\n function getMinRegistrationDuration() external view returns (uint256);\\n\\n /**\\n * @dev Returns the range of commitment ages allowed.\\n */\\n function getCommitmentAgeRange() external view returns (uint256 minCommitmentAge, uint256 maxCommitmentAge);\\n\\n /**\\n * @dev Returns the INSUnified contract associated with this controller.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Returns the INSDomainPrice contract associated with this controller.\\n */\\n function getPriceOracle() external view returns (INSDomainPrice);\\n\\n /**\\n * @dev Returns the INameChecker contract associated with this controller.\\n */\\n function getNameChecker() external view returns (INameChecker);\\n\\n /**\\n * @dev Returns the IReverseRegistrar contract associated with this controller.\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar);\\n}\\n\",\"keccak256\":\"0x537b708f5188b82cd1374feebb0a855988a935206dfbf84abe550876e03228f1\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IABIResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.0;\\n\\ninterface IABIResolver {\\n /// Thrown when the input content type is invalid.\\n error InvalidContentType();\\n\\n /// @dev Emitted when the ABI is changed.\\n event ABIChanged(bytes32 indexed node, uint256 indexed contentType);\\n\\n /**\\n * @dev Sets the ABI associated with an INS node. Nodes may have one ABI of each content type. To remove an ABI, set it\\n * to the empty string.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n * - The content type must be powers of 2.\\n *\\n * Emitted an event {ABIChanged}.\\n *\\n * @param node The node to update.\\n * @param contentType The content type of the ABI\\n * @param data The ABI data.\\n */\\n function setABI(bytes32 node, uint256 contentType, bytes calldata data) external;\\n\\n /**\\n * @dev Returns the ABI associated with an INS node.\\n * Defined in EIP-205, see more at https://eips.ethereum.org/EIPS/eip-205\\n *\\n * @param node The INS node to query\\n * @param contentTypes A bitwise OR of the ABI formats accepted by the caller.\\n * @return contentType The content type of the return value\\n * @return data The ABI data\\n */\\n function ABI(bytes32 node, uint256 contentTypes) external view returns (uint256 contentType, bytes memory data);\\n}\\n\",\"keccak256\":\"0xc701a6cafa883d6607b5916dfb4277099f39c450930d776da36a7acc2b2498c0\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IAddressResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.0;\\n\\ninterface IAddressResolver {\\n /// @dev Emitted when an address of a node is changed.\\n event AddrChanged(bytes32 indexed node, address addr);\\n\\n /**\\n * @dev Sets the address associated with an INS node.\\n *\\n * Requirement:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {AddrChanged}.\\n *\\n * @param node The node to update.\\n * @param addr The address to set.\\n */\\n function setAddr(bytes32 node, address addr) external;\\n\\n /**\\n * @dev Returns the address associated with an INS node.\\n * @param node The INS node to query.\\n * @return The associated address.\\n */\\n function addr(bytes32 node) external view returns (address payable);\\n}\\n\",\"keccak256\":\"0xb914cb4a730d20c867805fd148e7574c6565bc6c0a129825cdf3cf4f2f7f72d0\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IContentHashResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IContentHashResolver {\\n /// @dev Emitted when the content hash of a node is changed.\\n event ContentHashChanged(bytes32 indexed node, bytes hash);\\n\\n /**\\n * @dev Sets the content hash associated with an INS node.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {ContentHashChanged}.\\n *\\n * @param node The node to update.\\n * @param hash The content hash to set\\n */\\n function setContentHash(bytes32 node, bytes calldata hash) external;\\n\\n /**\\n * @dev Returns the content hash associated with an INS node.\\n * @param node The INS node to query.\\n * @return The associated content hash.\\n */\\n function contentHash(bytes32 node) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0xfbdc7211a813065e5cc2bdd3640c13f01c87b5f31fda86e562b0525628602c00\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IDNSRecordResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.4;\\n\\ninterface IDNSRecordResolver {\\n /// @dev Emitted whenever a given node/name/resource's RRSET is updated.\\n event DNSRecordChanged(bytes32 indexed node, bytes name, uint16 resource, bytes record);\\n /// @dev Emitted whenever a given node/name/resource's RRSET is deleted.\\n event DNSRecordDeleted(bytes32 indexed node, bytes name, uint16 resource);\\n\\n /**\\n * @dev Set one or more DNS records. Records are supplied in wire-format. Records with the same node/name/resource\\n * must be supplied one after the other to ensure the data is updated correctly. For example, if the data was\\n * supplied:\\n * a.example.com IN A 1.2.3.4\\n * a.example.com IN A 5.6.7.8\\n * www.example.com IN CNAME a.example.com.\\n * then this would store the two A records for a.example.com correctly as a single RRSET, however if the data was\\n * supplied:\\n * a.example.com IN A 1.2.3.4\\n * www.example.com IN CNAME a.example.com.\\n * a.example.com IN A 5.6.7.8\\n * then this would store the first A record, the CNAME, then the second A record which would overwrite the first.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * @param node the namehash of the node for which to set the records\\n * @param data the DNS wire format records to set\\n */\\n function setDNSRecords(bytes32 node, bytes calldata data) external;\\n\\n /**\\n * @dev Obtain a DNS record.\\n * @param node the namehash of the node for which to fetch the record\\n * @param name the keccak-256 hash of the fully-qualified name for which to fetch the record\\n * @param resource the ID of the resource as per https://en.wikipedia.org/wiki/List_of_DNS_record_types\\n * @return the DNS record in wire format if present, otherwise empty\\n */\\n function dnsRecord(bytes32 node, bytes32 name, uint16 resource) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x2341266d70b60f5bb666c066aaf1fdb35be81277bcdd04e3bf93ee774ae4d2f6\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IDNSZoneResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity >=0.8.4;\\n\\ninterface IDNSZoneResolver {\\n /// @dev Emitted whenever a given node's zone hash is updated.\\n event DNSZonehashChanged(bytes32 indexed node, bytes lastzonehash, bytes zonehash);\\n\\n /**\\n * @dev Sets the hash for the zone.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {DNSZonehashChanged}.\\n *\\n * @param node The node to update.\\n * @param hash The zonehash to set\\n */\\n function setZonehash(bytes32 node, bytes calldata hash) external;\\n\\n /**\\n * @dev Obtains the hash for the zone.\\n * @param node The INS node to query.\\n * @return The associated contenthash.\\n */\\n function zonehash(bytes32 node) external view returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x42aa5409a184740461e7477b8894d7549fd3908596bb7dba9adab59b8ff4ebed\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IInterfaceResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\ninterface IInterfaceResolver {\\n /// @dev Emitted when the interface of node is changed.\\n event InterfaceChanged(bytes32 indexed node, bytes4 indexed interfaceID, address implementer);\\n\\n /**\\n * @dev Sets an interface associated with a name.\\n * Setting the address to 0 restores the default behaviour of querying the contract at `addr()` for interface support.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * @param node The node to update.\\n * @param interfaceID The EIP 165 interface ID.\\n * @param implementer The address of a contract that implements this interface for this node.\\n */\\n function setInterface(bytes32 node, bytes4 interfaceID, address implementer) external;\\n\\n /**\\n * @dev Returns the address of a contract that implements the specified interface for this name.\\n *\\n * If an implementer has not been set for this interfaceID and name, the resolver will query the contract at `addr()`.\\n * If `addr()` is set, a contract exists at that address, and that contract implements EIP165 and returns `true` for\\n * the specified interfaceID, its address will be returned.\\n *\\n * @param node The INS node to query.\\n * @param interfaceID The EIP 165 interface ID to check for.\\n * @return The address that implements this interface, or 0 if the interface is unsupported.\\n */\\n function interfaceImplementer(bytes32 node, bytes4 interfaceID) external view returns (address);\\n}\\n\",\"keccak256\":\"0xb4a1867d5cb899bfdc2e812c4bf9b9d3d14b34e0f72cbeffb4e018f8659b13fc\",\"license\":\"MIT\"},\"src/interfaces/resolvers/INameResolver.sol\":{\"content\":\"// SPDX-License-Identifier: UNLICENSED\\npragma solidity ^0.8.0;\\n\\ninterface INameResolver {\\n /// @dev Emitted when a node name is changed.\\n event NameChanged(bytes32 indexed node, string name);\\n\\n /**\\n * @dev Sets the name associated with an INS node, for reverse records.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {NameChanged}.\\n *\\n * @param node The node to update.\\n */\\n function setName(bytes32 node, string calldata newName) external;\\n\\n /**\\n * @dev Returns the name associated with an INS node, for reverse records.\\n * @param node The INS node to query.\\n * @return The associated name.\\n */\\n function name(bytes32 node) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0xf3dbbe3238d5f1e491a43dbccbd74755fcd325b5c6aef6b7f0819684bd1f9da3\",\"license\":\"UNLICENSED\"},\"src/interfaces/resolvers/IPublicKeyResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ninterface IPublicKeyResolver {\\n struct PublicKey {\\n bytes32 x;\\n bytes32 y;\\n }\\n\\n /// @dev Emitted when a node public key is changed.\\n event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y);\\n\\n /**\\n * @dev Sets the SECP256k1 public key associated with an INS node.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {PubkeyChanged}.\\n *\\n * @param node The INS node to query\\n * @param x the X coordinate of the curve point for the public key.\\n * @param y the Y coordinate of the curve point for the public key.\\n */\\n function setPubkey(bytes32 node, bytes32 x, bytes32 y) external;\\n\\n /**\\n * @dev Returns the SECP256k1 public key associated with an INS node.\\n * Defined in EIP 619.\\n *\\n * @param node The INS node to query\\n * @return x The X coordinate of the curve point for the public key.\\n * @return y The Y coordinate of the curve point for the public key.\\n */\\n function pubkey(bytes32 node) external view returns (bytes32 x, bytes32 y);\\n}\\n\",\"keccak256\":\"0x2644fd8d9b951c2aca5521ba519b68d4f3de19b731dae7907b6372e1ceac07ae\",\"license\":\"MIT\"},\"src/interfaces/resolvers/IPublicResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\nimport { INSUnified } from \\\"../INSUnified.sol\\\";\\nimport { INSReverseRegistrar } from \\\"../INSReverseRegistrar.sol\\\";\\nimport { IABIResolver } from \\\"./IABIResolver.sol\\\";\\nimport { IAddressResolver } from \\\"./IAddressResolver.sol\\\";\\nimport { IContentHashResolver } from \\\"./IContentHashResolver.sol\\\";\\nimport { IDNSRecordResolver } from \\\"./IDNSRecordResolver.sol\\\";\\nimport { IDNSZoneResolver } from \\\"./IDNSZoneResolver.sol\\\";\\nimport { IInterfaceResolver } from \\\"./IInterfaceResolver.sol\\\";\\nimport { INameResolver } from \\\"./INameResolver.sol\\\";\\nimport { IPublicKeyResolver } from \\\"./IPublicKeyResolver.sol\\\";\\nimport { ITextResolver } from \\\"./ITextResolver.sol\\\";\\nimport { IMulticallable } from \\\"../IMulticallable.sol\\\";\\n\\ninterface IPublicResolver is\\n IABIResolver,\\n IAddressResolver,\\n IContentHashResolver,\\n IDNSRecordResolver,\\n IDNSZoneResolver,\\n IInterfaceResolver,\\n INameResolver,\\n IPublicKeyResolver,\\n ITextResolver,\\n IMulticallable\\n{\\n /// @dev See {IERC1155-ApprovalForAll}. Logged when an operator is added or removed.\\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\\n\\n /// @dev Logged when a delegate is approved or an approval is revoked.\\n event Approved(address owner, bytes32 indexed node, address indexed delegate, bool indexed approved);\\n\\n /**\\n * @dev Checks if an account is authorized to manage the resolution of a specific RNS node.\\n * @param node The RNS node.\\n * @param account The account address being checked for authorization.\\n * @return A boolean indicating whether the account is authorized.\\n */\\n function isAuthorized(bytes32 node, address account) external view returns (bool);\\n\\n /**\\n * @dev Retrieves the RNSUnified associated with this resolver.\\n */\\n function getRNSUnified() external view returns (INSUnified);\\n\\n /**\\n * @dev Retrieves the reverse registrar associated with this resolver.\\n */\\n function getReverseRegistrar() external view returns (INSReverseRegistrar);\\n\\n /**\\n * @dev This function provides an extra security check when called from privileged contracts (such as\\n * RONRegistrarController) that can set records on behalf of the node owners.\\n *\\n * Reverts if the node is not null but calldata is mismatched.\\n */\\n function multicallWithNodeCheck(bytes32 node, bytes[] calldata data) external returns (bytes[] memory results);\\n}\\n\",\"keccak256\":\"0x97b6f762f25a4dc3f6398a76bbcb7d3922f5f440ee9e0541c83579e09a8f87b7\",\"license\":\"MIT\"},\"src/interfaces/resolvers/ITextResolver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.19;\\n\\ninterface ITextResolver {\\n /// @dev Emitted when a node text is changed.\\n event TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value);\\n\\n /**\\n * @dev Sets the text data associated with an INS node and key.\\n *\\n * Requirements:\\n * - The method caller must be authorized to change user fields of RNS Token `node`. See indicator\\n * {ModifyingIndicator.USER_FIELDS_INDICATOR}.\\n *\\n * Emits an event {TextChanged}.\\n *\\n * @param node The node to update.\\n * @param key The key to set.\\n * @param value The text data value to set.\\n */\\n function setText(bytes32 node, string calldata key, string calldata value) external;\\n\\n /**\\n * Returns the text data associated with an INS node and key.\\n * @param node The INS node to query.\\n * @param key The text data key to query.\\n * @return The associated text data.\\n */\\n function text(bytes32 node, string calldata key) external view returns (string memory);\\n}\\n\",\"keccak256\":\"0x05ce1760d3a16d99614b1a46c11308238e1ecd8be23f081fac146bbc58961ecf\",\"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/LibString.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nlibrary LibString {\\n error InvalidStringLength();\\n error InvalidCharacter(bytes1 char);\\n\\n /// @dev Lookup constant for method. See more detail at https://eips.ethereum.org/EIPS/eip-181\\n bytes32 private constant LOOKUP = 0x3031323334353637383961626364656600000000000000000000000000000000;\\n\\n /**\\n * @dev Returns the length of a given string\\n *\\n * @param s The string to measure the length of\\n * @return The length of the input string\\n */\\n function strlen(string memory s) internal pure returns (uint256) {\\n unchecked {\\n uint256 i;\\n uint256 len;\\n uint256 bytelength = bytes(s).length;\\n for (len; i < bytelength; len++) {\\n bytes1 b = bytes(s)[i];\\n if (b < 0x80) {\\n i += 1;\\n } else if (b < 0xE0) {\\n i += 2;\\n } else if (b < 0xF0) {\\n i += 3;\\n } else if (b < 0xF8) {\\n i += 4;\\n } else if (b < 0xFC) {\\n i += 5;\\n } else {\\n i += 6;\\n }\\n }\\n return len;\\n }\\n }\\n\\n /**\\n * @dev Converts an address to string.\\n */\\n function toString(address addr) internal pure returns (string memory stringifiedAddr) {\\n assembly (\\\"memory-safe\\\") {\\n mstore(stringifiedAddr, 40)\\n let ptr := add(stringifiedAddr, 0x20)\\n for { let i := 40 } gt(i, 0) { } {\\n i := sub(i, 1)\\n mstore8(add(i, ptr), byte(and(addr, 0xf), LOOKUP))\\n addr := div(addr, 0x10)\\n\\n i := sub(i, 1)\\n mstore8(add(i, ptr), byte(and(addr, 0xf), LOOKUP))\\n addr := div(addr, 0x10)\\n }\\n }\\n }\\n\\n /**\\n * @dev Converts string to address.\\n * Reverts if the string length is not equal to 40.\\n */\\n function parseAddr(string memory stringifiedAddr) internal pure returns (address) {\\n unchecked {\\n if (bytes(stringifiedAddr).length != 40) revert InvalidStringLength();\\n uint160 addr;\\n for (uint256 i = 0; i < 40; i += 2) {\\n addr *= 0x100;\\n addr += uint160(hexCharToDec(bytes(stringifiedAddr)[i])) * 0x10;\\n addr += hexCharToDec(bytes(stringifiedAddr)[i + 1]);\\n }\\n return address(addr);\\n }\\n }\\n\\n /**\\n * @dev Converts a hex char (0-9, a-f, A-F) to decimal number.\\n * Reverts if the char is invalid.\\n */\\n function hexCharToDec(bytes1 c) private pure returns (uint8 r) {\\n unchecked {\\n if ((bytes1(\\\"a\\\") <= c) && (c <= bytes1(\\\"f\\\"))) r = uint8(c) - 87;\\n else if ((bytes1(\\\"A\\\") <= c) && (c <= bytes1(\\\"F\\\"))) r = uint8(c) - 55;\\n else if ((bytes1(\\\"0\\\") <= c) && (c <= bytes1(\\\"9\\\"))) r = uint8(c) - 48;\\n else revert InvalidCharacter(c);\\n }\\n }\\n}\\n\",\"keccak256\":\"0x9d456b294f0e44ccaabded43a3d96db6270761a167535155a762fe41e968b905\",\"license\":\"MIT\"},\"src/libraries/math/PeriodScalingUtils.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\nimport { PowMath } from \\\"./PowMath.sol\\\";\\n\\nstruct PeriodScaler {\\n uint192 ratio;\\n uint64 period;\\n}\\n\\nlibrary LibPeriodScaler {\\n using PowMath for uint256;\\n\\n error PeriodNumOverflowedUint16(uint256 n);\\n\\n /// @dev The precision number of calculation is 2\\n uint256 public constant MAX_PERCENTAGE = 100_00;\\n\\n /**\\n * @dev Scales down the input value `v` for a percentage of `self.ratio` each period `self.period`.\\n * Reverts if the passed period is larger than 2^16 - 1.\\n *\\n * @param self The period scaler with specific period and ratio\\n * @param v The original value to scale based on the rule `self`\\n * @param maxR The maximum value of 100%. Eg, if the `self.ratio` in range of [0;100_00] reflexes 0-100%, this param\\n * must be 100_00\\n * @param dur The passed duration in the same uint with `self.period`\\n */\\n function scaleDown(PeriodScaler memory self, uint256 v, uint64 maxR, uint256 dur) internal pure returns (uint256 rs) {\\n uint256 n = dur / uint256(self.period);\\n if (n == 0 || self.ratio == 0) return v;\\n if (maxR == self.ratio) return 0;\\n if (n > type(uint16).max) revert PeriodNumOverflowedUint16(n);\\n\\n unchecked {\\n // Normalizes the input ratios to be in range of [0;MAX_PERCENTAGE]\\n uint256 p = Math.mulDiv(maxR - self.ratio, MAX_PERCENTAGE, maxR);\\n return v.mulDiv({ y: p, d: MAX_PERCENTAGE, n: uint16(n) });\\n }\\n }\\n}\\n\",\"keccak256\":\"0x502d004fbd130a99f3f1e6685aebff9f47300565fbc5a65b4912824ea5eb5b78\",\"license\":\"MIT\"},\"src/libraries/math/PowMath.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity ^0.8.0;\\n\\nimport { SafeMath } from \\\"@openzeppelin/contracts/utils/math/SafeMath.sol\\\";\\nimport { Math } from \\\"@openzeppelin/contracts/utils/math/Math.sol\\\";\\n\\nlibrary PowMath {\\n using Math for uint256;\\n using SafeMath for uint256;\\n\\n /**\\n * @dev Negative exponent n for x*10^n.\\n */\\n function exp10(uint256 x, int32 n) internal pure returns (uint256) {\\n if (n < 0) {\\n return x / 10 ** uint32(-n);\\n } else if (n > 0) {\\n return x * 10 ** uint32(n);\\n } else {\\n return x;\\n }\\n }\\n\\n /**\\n * @dev Calculates floor(x * (y / d)**n) with full precision.\\n */\\n function mulDiv(uint256 x, uint256 y, uint256 d, uint16 n) internal pure returns (uint256 r) {\\n unchecked {\\n if (y == d || n == 0) return x;\\n r = x;\\n\\n bool ok;\\n uint256 r_;\\n uint16 nd_;\\n\\n {\\n uint16 ye = uint16(Math.min(n, findMaxExponent(y)));\\n while (ye > 0) {\\n (ok, r_) = r.tryMul(y ** ye);\\n if (ok) {\\n r = r_;\\n n -= ye;\\n nd_ += ye;\\n }\\n ye = uint16(Math.min(ye / 2, n));\\n }\\n }\\n\\n while (n > 0) {\\n (ok, r_) = r.tryMul(y);\\n if (ok) {\\n r = r_;\\n n--;\\n nd_++;\\n } else if (nd_ > 0) {\\n r /= d;\\n nd_--;\\n } else {\\n r = r.mulDiv(y, d);\\n n--;\\n }\\n }\\n\\n uint16 de = findMaxExponent(d);\\n while (nd_ > 0) {\\n uint16 e = uint16(Math.min(de, nd_));\\n r /= d ** e;\\n nd_ -= e;\\n }\\n }\\n }\\n\\n /**\\n * @dev Calculates floor(x * (y / d)**n) with low precision.\\n */\\n function mulDivLowPrecision(uint256 x, uint256 y, uint256 d, uint16 n) internal pure returns (uint256) {\\n return uncheckedMulDiv(x, y, d, n, findMaxExponent(Math.max(y, d)));\\n }\\n\\n /**\\n * @dev Aggregated calculate multiplications.\\n * ```\\n * r = x*(y/d)^k\\n * = \\\\prod(x*(y/d)^{k_i}) \\\\ where \\\\ sum(k_i) = k\\n * ```\\n */\\n function uncheckedMulDiv(uint256 x, uint256 y, uint256 d, uint16 n, uint16 maxE) internal pure returns (uint256 r) {\\n unchecked {\\n r = x;\\n uint16 e;\\n while (n > 0) {\\n e = uint16(Math.min(n, maxE));\\n r = r.mulDiv(y ** e, d ** e);\\n n -= e;\\n }\\n }\\n }\\n\\n /**\\n * @dev Returns the largest exponent `k` where, x^k <= 2^256-1\\n * Note: n = Surd[2^256-1,k]\\n * = 10^( log2(2^256-1) / k * log10(2) )\\n */\\n function findMaxExponent(uint256 x) internal pure returns (uint16 k) {\\n if (x < 3) k = 255;\\n else if (x < 4) k = 128;\\n else if (x < 16) k = 64;\\n else if (x < 256) k = 32;\\n else if (x < 7132) k = 20;\\n else if (x < 11376) k = 19;\\n else if (x < 19113) k = 18;\\n else if (x < 34132) k = 17;\\n else if (x < 65536) k = 16;\\n else if (x < 137271) k = 15;\\n else if (x < 319558) k = 14;\\n else if (x < 847180) k = 13;\\n else if (x < 2642246) k = 12;\\n else if (x < 10134189) k = 11;\\n else if (x < 50859009) k = 10;\\n else if (x < 365284285) k = 9;\\n else if (x < 4294967296) k = 8;\\n else if (x < 102116749983) k = 7;\\n else if (x < 6981463658332) k = 6;\\n else if (x < 2586638741762875) k = 5;\\n else if (x < 18446744073709551616) k = 4;\\n else if (x < 48740834812604276470692695) k = 3;\\n else if (x < 340282366920938463463374607431768211456) k = 2;\\n else k = 1;\\n }\\n}\\n\",\"keccak256\":\"0x29f943cf7c61149bc9a624244901720fc3a349adb418555db1db2a045fcdfb70\",\"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": 195, "storageLayout": { "storage": [ { - "astId": 50266, + "astId": 60522, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_paused", "offset": 0, @@ -16042,7 +1504,7 @@ "type": "t_bool" }, { - "astId": 50086, + "astId": 60342, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_initialized", "offset": 1, @@ -16050,7 +1512,7 @@ "type": "t_uint8" }, { - "astId": 50089, + "astId": 60345, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_initializing", "offset": 2, @@ -16058,7 +1520,7 @@ "type": "t_bool" }, { - "astId": 50367, + "astId": 60623, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_status", "offset": 0, @@ -16066,23 +1528,23 @@ "type": "t_uint256" }, { - "astId": 48559, + "astId": 58815, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_roles", "offset": 0, "slot": "2", - "type": "t_mapping(t_bytes32,t_struct(RoleData)48554_storage)" + "type": "t_mapping(t_bytes32,t_struct(RoleData)58810_storage)" }, { - "astId": 48869, + "astId": 59125, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_roleMembers", "offset": 0, "slot": "3", - "type": "t_mapping(t_bytes32,t_struct(AddressSet)54438_storage)" + "type": "t_mapping(t_bytes32,t_struct(AddressSet)64694_storage)" }, { - "astId": 64887, + "astId": 83016, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "____gap", "offset": 0, @@ -16090,7 +1552,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 64890, + "astId": 83019, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_minCommitmentAge", "offset": 0, @@ -16098,7 +1560,7 @@ "type": "t_uint256" }, { - "astId": 64893, + "astId": 83022, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_maxCommitmentAge", "offset": 0, @@ -16106,7 +1568,7 @@ "type": "t_uint256" }, { - "astId": 64896, + "astId": 83025, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_minRegistrationDuration", "offset": 0, @@ -16114,7 +1576,7 @@ "type": "t_uint256" }, { - "astId": 64899, + "astId": 83028, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_treasury", "offset": 0, @@ -16122,39 +1584,39 @@ "type": "t_address_payable" }, { - "astId": 64903, + "astId": 83032, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_rnsUnified", "offset": 0, "slot": "58", - "type": "t_contract(INSUnified)67046" + "type": "t_contract(INSUnified)85351" }, { - "astId": 64907, + "astId": 83036, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_nameChecker", "offset": 0, "slot": "59", - "type": "t_contract(INameChecker)67165" + "type": "t_contract(INameChecker)85470" }, { - "astId": 64911, + "astId": 83040, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_priceOracle", "offset": 0, "slot": "60", - "type": "t_contract(INSDomainPrice)66670" + "type": "t_contract(INSDomainPrice)84975" }, { - "astId": 64915, + "astId": 83044, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_reverseRegistrar", "offset": 0, "slot": "61", - "type": "t_contract(INSReverseRegistrar)66789" + "type": "t_contract(INSReverseRegistrar)85094" }, { - "astId": 64920, + "astId": 83049, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_committedAt", "offset": 0, @@ -16162,7 +1624,7 @@ "type": "t_mapping(t_bytes32,t_uint256)" }, { - "astId": 64927, + "astId": 83056, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_protectedNamesWhitelisted", "offset": 0, @@ -16203,22 +1665,22 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_contract(INSDomainPrice)66670": { + "t_contract(INSDomainPrice)84975": { "encoding": "inplace", "label": "contract INSDomainPrice", "numberOfBytes": "20" }, - "t_contract(INSReverseRegistrar)66789": { + "t_contract(INSReverseRegistrar)85094": { "encoding": "inplace", "label": "contract INSReverseRegistrar", "numberOfBytes": "20" }, - "t_contract(INSUnified)67046": { + "t_contract(INSUnified)85351": { "encoding": "inplace", "label": "contract INSUnified", "numberOfBytes": "20" }, - "t_contract(INameChecker)67165": { + "t_contract(INameChecker)85470": { "encoding": "inplace", "label": "contract INameChecker", "numberOfBytes": "20" @@ -16230,19 +1692,19 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_bytes32,t_struct(AddressSet)54438_storage)": { + "t_mapping(t_bytes32,t_struct(AddressSet)64694_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)54438_storage" + "value": "t_struct(AddressSet)64694_storage" }, - "t_mapping(t_bytes32,t_struct(RoleData)48554_storage)": { + "t_mapping(t_bytes32,t_struct(RoleData)58810_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct AccessControl.RoleData)", "numberOfBytes": "32", - "value": "t_struct(RoleData)48554_storage" + "value": "t_struct(RoleData)58810_storage" }, "t_mapping(t_bytes32,t_uint256)": { "encoding": "mapping", @@ -16258,28 +1720,28 @@ "numberOfBytes": "32", "value": "t_mapping(t_address,t_bool)" }, - "t_struct(AddressSet)54438_storage": { + "t_struct(AddressSet)64694_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "numberOfBytes": "64", "members": [ { - "astId": 54437, + "astId": 64693, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)54123_storage" + "type": "t_struct(Set)64379_storage" } ] }, - "t_struct(RoleData)48554_storage": { + "t_struct(RoleData)58810_storage": { "encoding": "inplace", "label": "struct AccessControl.RoleData", "numberOfBytes": "64", "members": [ { - "astId": 48551, + "astId": 58807, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "members", "offset": 0, @@ -16287,7 +1749,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 48553, + "astId": 58809, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "adminRole", "offset": 0, @@ -16296,13 +1758,13 @@ } ] }, - "t_struct(Set)54123_storage": { + "t_struct(Set)64379_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "numberOfBytes": "64", "members": [ { - "astId": 54118, + "astId": 64374, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_values", "offset": 0, @@ -16310,7 +1772,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 54122, + "astId": 64378, "contract": "src/RONRegistrarController.sol:RONRegistrarController", "label": "_indexes", "offset": 0, @@ -16331,7 +1793,7 @@ } } }, - "timestamp": 1699254558, + "timestamp": 1720084974, "userdoc": { "version": 1, "kind": "user", diff --git a/script/20240704-upgrade-controller-deploy-rnscommission-mainnet/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol b/script/20240704-upgrade-controller-deploy-rnscommission-mainnet/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol new file mode 100644 index 0000000..c419499 --- /dev/null +++ b/script/20240704-upgrade-controller-deploy-rnscommission-mainnet/20240704_UpgradeControllerAndDeployRNSCommissionMainnet.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { RNSAuction, RNSAuctionDeploy } from "script/contracts/RNSAuctionDeploy.s.sol"; +import { + RONRegistrarController, RONRegistrarControllerDeploy +} from "script/contracts/RONRegistrarControllerDeploy.s.sol"; +import { Contract } from "script/utils/Contract.sol"; +import { RNSCommission, RNSCommissionDeploy } from "script/contracts/RNSCommissionDeploy.s.sol"; +import { Migration } from "script/Migration.s.sol"; + +contract Migration__20240407_UpgradeControllerAndDeployRNSCommissionMainnet is Migration { + RONRegistrarController private _controller; + RNSCommission private _rnsCommission; + RNSAuction _auction; + + function run() public { + _auction = RNSAuction(loadContract(Contract.RNSAuction.key())); + _controller = RONRegistrarController(_upgradeProxy(Contract.RONRegistrarController.key())); + _rnsCommission = new RNSCommissionDeploy().run(); + } + + function _postCheck() internal override { + _validateSendMoneyFromSenders(); + _validateCommissionInfo(); + _validateSendersAddress(); + } + + function _validateCommissionInfo() internal logFn("_validateSetCommissionInfo") { + assertEq(_rnsCommission.getCommissions().length, 2); + + assertEq(_rnsCommission.getCommissions()[0].recipient, payable(0xFf43f5Ef28EcB7c1f219751fc793deB40ef07A53)); + assertEq(_rnsCommission.getCommissions()[1].recipient, payable(0x22cEfc91E9b7c0f3890eBf9527EA89053490694e)); + + assertEq(_rnsCommission.getCommissions()[0].ratio, 70_00); + assertEq(_rnsCommission.getCommissions()[1].ratio, 30_00); + + assertEq(_rnsCommission.getCommissions()[0].name, "Sky Mavis"); + assertEq(_rnsCommission.getCommissions()[1].name, "Ronin"); + } + + function _validateSendMoneyFromSenders() internal logFn("_validateSendMoneyFromSenders") { + vm.deal(address(_auction), 100 ether); + vm.prank(address(_auction)); + address(_rnsCommission).call{ value: 100 ether }(""); + + vm.deal(address(_controller), 100 ether); + vm.prank(address(_controller)); + address(_rnsCommission).call{ value: 100 ether }(""); + + assertEq(address(_rnsCommission).balance, 0 ether); + + address randomAddr = makeAddr("random address"); + vm.deal(address(randomAddr), 100 ether); + vm.prank(randomAddr); + address(_rnsCommission).call{ value: 100 ether }(""); + + assertEq(address(_rnsCommission).balance, 100 ether); + } + + function _validateSendersAddress() internal logFn("_validateSendersAddress") { + bytes32 SENDER_ROLE = keccak256("SENDER_ROLE"); + + require(_rnsCommission.hasRole(SENDER_ROLE, address(_auction))); + require(_rnsCommission.hasRole(SENDER_ROLE, address(_controller))); + } +} diff --git a/script/Migration.s.sol b/script/Migration.s.sol index e4c73c3..2f1304f 100644 --- a/script/Migration.s.sol +++ b/script/Migration.s.sol @@ -152,6 +152,22 @@ abstract contract Migration is BaseMigration { param.rnsUnified.protectedSettler = temporaryAdmin; param.rnsUnified.gracePeriod = 90 days; param.rnsUnified.baseTokenURI = "https://metadata-rns.roninchain.com/ronin/"; + + // RNSCommission + param.rnsCommission.admin = 0x9D05D1F5b0424F8fDE534BC196FFB6Dd211D902a; + param.rnsCommission.commissionSetters = new address[](1); + param.rnsCommission.commissionSetters[0] = 0x9D05D1F5b0424F8fDE534BC196FFB6Dd211D902a; + + param.rnsCommission.allowedSenders = new address[](2); + + param.rnsCommission.treasuryCommission = new INSCommission.Commission[](2); + param.rnsCommission.treasuryCommission[0].recipient = payable(0xFf43f5Ef28EcB7c1f219751fc793deB40ef07A53); + param.rnsCommission.treasuryCommission[0].ratio = 70_00; + param.rnsCommission.treasuryCommission[0].name = "Sky Mavis"; + + param.rnsCommission.treasuryCommission[1].recipient = payable(0x22cEfc91E9b7c0f3890eBf9527EA89053490694e); + param.rnsCommission.treasuryCommission[1].ratio = 30_00; + param.rnsCommission.treasuryCommission[1].name = "Ronin"; } else { revert("Missing param"); } diff --git a/yarn.lock b/yarn.lock index 71e422a..41acf2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,13 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 6 - cacheKey: 8 + version: 8 + cacheKey: 10c0 "@chainsafe/as-sha256@npm:^0.3.1": version: 0.3.1 resolution: "@chainsafe/as-sha256@npm:0.3.1" - checksum: 58ea733be1657b0e31dbf48b0dba862da0833df34a81c1460c7352f04ce90874f70003cbf34d0afb9e5e53a33ee2d63a261a8b12462be85b2ba0a6f7f13d6150 + checksum: 8/58ea733be1657b0e31dbf48b0dba862da0833df34a81c1460c7352f04ce90874f70003cbf34d0afb9e5e53a33ee2d63a261a8b12462be85b2ba0a6f7f13d6150 languageName: node linkType: hard @@ -16,8 +16,8 @@ __metadata: version: 0.4.2 resolution: "@chainsafe/persistent-merkle-tree@npm:0.4.2" dependencies: - "@chainsafe/as-sha256": ^0.3.1 - checksum: f9cfcb2132a243992709715dbd28186ab48c7c0c696f29d30857693cca5526bf753974a505ef68ffd5623bbdbcaa10f9083f4dd40bf99eb6408e451cc26a1a9e + "@chainsafe/as-sha256": "npm:^0.3.1" + checksum: 8/f9cfcb2132a243992709715dbd28186ab48c7c0c696f29d30857693cca5526bf753974a505ef68ffd5623bbdbcaa10f9083f4dd40bf99eb6408e451cc26a1a9e languageName: node linkType: hard @@ -25,8 +25,8 @@ __metadata: version: 0.5.0 resolution: "@chainsafe/persistent-merkle-tree@npm:0.5.0" dependencies: - "@chainsafe/as-sha256": ^0.3.1 - checksum: 2c67203da776c79cd3a6132e2d672fe132393b2e63dc71604e3134acc8c0ec25cc5e431051545939ea0f7c5ff2066fb806b9e5cab974ca085d046226a1671f7d + "@chainsafe/as-sha256": "npm:^0.3.1" + checksum: 8/2c67203da776c79cd3a6132e2d672fe132393b2e63dc71604e3134acc8c0ec25cc5e431051545939ea0f7c5ff2066fb806b9e5cab974ca085d046226a1671f7d languageName: node linkType: hard @@ -34,9 +34,9 @@ __metadata: version: 0.10.2 resolution: "@chainsafe/ssz@npm:0.10.2" dependencies: - "@chainsafe/as-sha256": ^0.3.1 - "@chainsafe/persistent-merkle-tree": ^0.5.0 - checksum: 6bb70cf741d0a19dd0b28b3f6f067b96fa39f556e2eefa6ac745b21db9c3b3a8393dc3cca8ff4a6ce065ed71ddc3fb1b2b390a92004b9d01067c26e2558e5503 + "@chainsafe/as-sha256": "npm:^0.3.1" + "@chainsafe/persistent-merkle-tree": "npm:^0.5.0" + checksum: 8/6bb70cf741d0a19dd0b28b3f6f067b96fa39f556e2eefa6ac745b21db9c3b3a8393dc3cca8ff4a6ce065ed71ddc3fb1b2b390a92004b9d01067c26e2558e5503 languageName: node linkType: hard @@ -44,10 +44,10 @@ __metadata: version: 0.9.4 resolution: "@chainsafe/ssz@npm:0.9.4" dependencies: - "@chainsafe/as-sha256": ^0.3.1 - "@chainsafe/persistent-merkle-tree": ^0.4.2 - case: ^1.6.3 - checksum: c6eaedeae9e5618b3c666ff4507a27647f665a8dcf17d5ca86da4ed4788c5a93868f256d0005467d184fdf35ec03f323517ec2e55ec42492d769540a2ec396bc + "@chainsafe/as-sha256": "npm:^0.3.1" + "@chainsafe/persistent-merkle-tree": "npm:^0.4.2" + case: "npm:^1.6.3" + checksum: 8/c6eaedeae9e5618b3c666ff4507a27647f665a8dcf17d5ca86da4ed4788c5a93868f256d0005467d184fdf35ec03f323517ec2e55ec42492d769540a2ec396bc languageName: node linkType: hard @@ -55,8 +55,8 @@ __metadata: version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 8/5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa languageName: node linkType: hard @@ -64,16 +64,16 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/abi@npm:5.7.0" dependencies: - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/hash": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: bc6962bb6cb854e4d2a4d65b2c49c716477675b131b1363312234bdbb7e19badb7d9ce66f4ca2a70ae2ea84f7123dbc4e300a1bfe5d58864a7eafabc1466627e + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 8/bc6962bb6cb854e4d2a4d65b2c49c716477675b131b1363312234bdbb7e19badb7d9ce66f4ca2a70ae2ea84f7123dbc4e300a1bfe5d58864a7eafabc1466627e languageName: node linkType: hard @@ -81,14 +81,14 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/abstract-provider@npm:5.7.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/networks": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/web": ^5.7.0 - checksum: 74cf4696245cf03bb7cc5b6cbf7b4b89dd9a79a1c4688126d214153a938126d4972d42c93182198653ce1de35f2a2cad68be40337d4774b3698a39b28f0228a8 + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + checksum: 8/74cf4696245cf03bb7cc5b6cbf7b4b89dd9a79a1c4688126d214153a938126d4972d42c93182198653ce1de35f2a2cad68be40337d4774b3698a39b28f0228a8 languageName: node linkType: hard @@ -96,12 +96,12 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/abstract-signer@npm:5.7.0" dependencies: - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - checksum: a823dac9cfb761e009851050ebebd5b229d1b1cc4a75b125c2da130ff37e8218208f7f9d1386f77407705b889b23d4a230ad67185f8872f083143e0073cbfbe3 + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 8/a823dac9cfb761e009851050ebebd5b229d1b1cc4a75b125c2da130ff37e8218208f7f9d1386f77407705b889b23d4a230ad67185f8872f083143e0073cbfbe3 languageName: node linkType: hard @@ -109,12 +109,12 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/address@npm:5.7.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - checksum: 64ea5ebea9cc0e845c413e6cb1e54e157dd9fc0dffb98e239d3a3efc8177f2ff798cd4e3206cf3660ee8faeb7bef1a47dc0ebef0d7b132c32e61e550c7d4c843 + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + checksum: 8/64ea5ebea9cc0e845c413e6cb1e54e157dd9fc0dffb98e239d3a3efc8177f2ff798cd4e3206cf3660ee8faeb7bef1a47dc0ebef0d7b132c32e61e550c7d4c843 languageName: node linkType: hard @@ -122,8 +122,8 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/base64@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - checksum: 7dd5d734d623582f08f665434f53685041a3d3b334a0e96c0c8afa8bbcaab934d50e5b6b980e826a8fde8d353e0b18f11e61faf17468177274b8e7c69cd9742b + "@ethersproject/bytes": "npm:^5.7.0" + checksum: 8/7dd5d734d623582f08f665434f53685041a3d3b334a0e96c0c8afa8bbcaab934d50e5b6b980e826a8fde8d353e0b18f11e61faf17468177274b8e7c69cd9742b languageName: node linkType: hard @@ -131,9 +131,9 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/basex@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - checksum: 326087b7e1f3787b5fe6cd1cf2b4b5abfafbc355a45e88e22e5e9d6c845b613ffc5301d629b28d5c4d5e2bfe9ec424e6782c804956dff79be05f0098cb5817de + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 8/326087b7e1f3787b5fe6cd1cf2b4b5abfafbc355a45e88e22e5e9d6c845b613ffc5301d629b28d5c4d5e2bfe9ec424e6782c804956dff79be05f0098cb5817de languageName: node linkType: hard @@ -141,10 +141,10 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/bignumber@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - bn.js: ^5.2.1 - checksum: 8c9a134b76f3feb4ec26a5a27379efb4e156b8fb2de0678a67788a91c7f4e30abe9d948638458e4b20f2e42380da0adacc7c9389d05fce070692edc6ae9b4904 + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + checksum: 8/8c9a134b76f3feb4ec26a5a27379efb4e156b8fb2de0678a67788a91c7f4e30abe9d948638458e4b20f2e42380da0adacc7c9389d05fce070692edc6ae9b4904 languageName: node linkType: hard @@ -152,8 +152,8 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/bytes@npm:5.7.0" dependencies: - "@ethersproject/logger": ^5.7.0 - checksum: 66ad365ceaab5da1b23b72225c71dce472cf37737af5118181fa8ab7447d696bea15ca22e3a0e8836fdd8cfac161afe321a7c67d0dde96f9f645ddd759676621 + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/66ad365ceaab5da1b23b72225c71dce472cf37737af5118181fa8ab7447d696bea15ca22e3a0e8836fdd8cfac161afe321a7c67d0dde96f9f645ddd759676621 languageName: node linkType: hard @@ -161,8 +161,8 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/constants@npm:5.7.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - checksum: 6d4b1355747cce837b3e76ec3bde70e4732736f23b04f196f706ebfa5d4d9c2be50904a390d4d40ce77803b98d03d16a9b6898418e04ba63491933ce08c4ba8a + "@ethersproject/bignumber": "npm:^5.7.0" + checksum: 8/6d4b1355747cce837b3e76ec3bde70e4732736f23b04f196f706ebfa5d4d9c2be50904a390d4d40ce77803b98d03d16a9b6898418e04ba63491933ce08c4ba8a languageName: node linkType: hard @@ -170,17 +170,17 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/contracts@npm:5.7.0" dependencies: - "@ethersproject/abi": ^5.7.0 - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - checksum: 6ccf1121cba01b31e02f8c507cb971ab6bfed85706484a9ec09878ef1594a62215f43c4fdef8f4a4875b99c4a800bc95e3be69b1803f8ce479e07634b5a740c0 + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + checksum: 8/6ccf1121cba01b31e02f8c507cb971ab6bfed85706484a9ec09878ef1594a62215f43c4fdef8f4a4875b99c4a800bc95e3be69b1803f8ce479e07634b5a740c0 languageName: node linkType: hard @@ -188,16 +188,16 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/hash@npm:5.7.0" dependencies: - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/base64": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 6e9fa8d14eb08171cd32f17f98cc108ec2aeca74a427655f0d689c550fee0b22a83b3b400fad7fb3f41cf14d4111f87f170aa7905bcbcd1173a55f21b06262ef + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 8/6e9fa8d14eb08171cd32f17f98cc108ec2aeca74a427655f0d689c550fee0b22a83b3b400fad7fb3f41cf14d4111f87f170aa7905bcbcd1173a55f21b06262ef languageName: node linkType: hard @@ -205,19 +205,19 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/hdnode@npm:5.7.0" dependencies: - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/basex": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/pbkdf2": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/sha2": ^5.7.0 - "@ethersproject/signing-key": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/wordlists": ^5.7.0 - checksum: bfe5ca2d89a42de73655f853170ef4766b933c5f481cddad709b3aca18823275b096e572f92d1602a052f80b426edde44ad6b9d028799775a7dad4a5bbed2133 + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 8/bfe5ca2d89a42de73655f853170ef4766b933c5f481cddad709b3aca18823275b096e572f92d1602a052f80b426edde44ad6b9d028799775a7dad4a5bbed2133 languageName: node linkType: hard @@ -225,20 +225,20 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/json-wallets@npm:5.7.0" dependencies: - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/hdnode": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/pbkdf2": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/random": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - checksum: f583458d22db62efaaf94d38dd243482776a45bf90f9f3882fbad5aa0b8fd288b41eb7c1ff8ec0b99c9b751088e43d6173530db64dd33c59f9d8daa8d7ad5aa2 + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + aes-js: "npm:3.0.0" + scrypt-js: "npm:3.0.1" + checksum: 8/f583458d22db62efaaf94d38dd243482776a45bf90f9f3882fbad5aa0b8fd288b41eb7c1ff8ec0b99c9b751088e43d6173530db64dd33c59f9d8daa8d7ad5aa2 languageName: node linkType: hard @@ -246,16 +246,16 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/keccak256@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - js-sha3: 0.8.0 - checksum: ff70950d82203aab29ccda2553422cbac2e7a0c15c986bd20a69b13606ed8bb6e4fdd7b67b8d3b27d4f841e8222cbaccd33ed34be29f866fec7308f96ed244c6 + "@ethersproject/bytes": "npm:^5.7.0" + js-sha3: "npm:0.8.0" + checksum: 8/ff70950d82203aab29ccda2553422cbac2e7a0c15c986bd20a69b13606ed8bb6e4fdd7b67b8d3b27d4f841e8222cbaccd33ed34be29f866fec7308f96ed244c6 languageName: node linkType: hard "@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/logger@npm:5.7.0" - checksum: 075ab2f605f1fd0813f2e39c3308f77b44a67732b36e712d9bc085f22a84aac4da4f71b39bee50fe78da3e1c812673fadc41180c9970fe5e486e91ea17befe0d + checksum: 8/075ab2f605f1fd0813f2e39c3308f77b44a67732b36e712d9bc085f22a84aac4da4f71b39bee50fe78da3e1c812673fadc41180c9970fe5e486e91ea17befe0d languageName: node linkType: hard @@ -263,8 +263,8 @@ __metadata: version: 5.7.1 resolution: "@ethersproject/networks@npm:5.7.1" dependencies: - "@ethersproject/logger": ^5.7.0 - checksum: 0339f312304c17d9a0adce550edb825d4d2c8c9468c1634c44172c67a9ed256f594da62c4cda5c3837a0f28b7fabc03aca9b492f68ff1fdad337ee861b27bd5d + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/0339f312304c17d9a0adce550edb825d4d2c8c9468c1634c44172c67a9ed256f594da62c4cda5c3837a0f28b7fabc03aca9b492f68ff1fdad337ee861b27bd5d languageName: node linkType: hard @@ -272,9 +272,9 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/pbkdf2@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/sha2": ^5.7.0 - checksum: b895adb9e35a8a127e794f7aadc31a2424ef355a70e51cde10d457e3e888bb8102373199a540cf61f2d6b9a32e47358f9c65b47d559f42bf8e596b5fd67901e9 + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + checksum: 8/b895adb9e35a8a127e794f7aadc31a2424ef355a70e51cde10d457e3e888bb8102373199a540cf61f2d6b9a32e47358f9c65b47d559f42bf8e596b5fd67901e9 languageName: node linkType: hard @@ -282,8 +282,8 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/properties@npm:5.7.0" dependencies: - "@ethersproject/logger": ^5.7.0 - checksum: 6ab0ccf0c3aadc9221e0cdc5306ce6cd0df7f89f77d77bccdd1277182c9ead0202cd7521329ba3acde130820bf8af299e17cf567d0d497c736ee918207bbf59f + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/6ab0ccf0c3aadc9221e0cdc5306ce6cd0df7f89f77d77bccdd1277182c9ead0202cd7521329ba3acde130820bf8af299e17cf567d0d497c736ee918207bbf59f languageName: node linkType: hard @@ -291,27 +291,27 @@ __metadata: version: 5.7.2 resolution: "@ethersproject/providers@npm:5.7.2" dependencies: - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/base64": ^5.7.0 - "@ethersproject/basex": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/hash": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/networks": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/random": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - "@ethersproject/sha2": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/web": ^5.7.0 - bech32: 1.1.4 - ws: 7.4.6 - checksum: 1754c731a5ca6782ae9677f4a9cd8b6246c4ef21a966c9a01b133750f3c578431ec43ec254e699969c4a0f87e84463ded50f96b415600aabd37d2056aee58c19 + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + bech32: "npm:1.1.4" + ws: "npm:7.4.6" + checksum: 8/1754c731a5ca6782ae9677f4a9cd8b6246c4ef21a966c9a01b133750f3c578431ec43ec254e699969c4a0f87e84463ded50f96b415600aabd37d2056aee58c19 languageName: node linkType: hard @@ -319,9 +319,9 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/random@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - checksum: 017829c91cff6c76470852855108115b0b52c611b6be817ed1948d56ba42d6677803ec2012aa5ae298a7660024156a64c11fcf544e235e239ab3f89f0fff7345 + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/017829c91cff6c76470852855108115b0b52c611b6be817ed1948d56ba42d6677803ec2012aa5ae298a7660024156a64c11fcf544e235e239ab3f89f0fff7345 languageName: node linkType: hard @@ -329,9 +329,9 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/rlp@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - checksum: bce165b0f7e68e4d091c9d3cf47b247cac33252df77a095ca4281d32d5eeaaa3695d9bc06b2b057c5015353a68df89f13a4a54a72e888e4beeabbe56b15dda6e + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/bce165b0f7e68e4d091c9d3cf47b247cac33252df77a095ca4281d32d5eeaaa3695d9bc06b2b057c5015353a68df89f13a4a54a72e888e4beeabbe56b15dda6e languageName: node linkType: hard @@ -339,10 +339,10 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/sha2@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - hash.js: 1.1.7 - checksum: 09321057c022effbff4cc2d9b9558228690b5dd916329d75c4b1ffe32ba3d24b480a367a7cc92d0f0c0b1c896814d03351ae4630e2f1f7160be2bcfbde435dbc + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + hash.js: "npm:1.1.7" + checksum: 8/09321057c022effbff4cc2d9b9558228690b5dd916329d75c4b1ffe32ba3d24b480a367a7cc92d0f0c0b1c896814d03351ae4630e2f1f7160be2bcfbde435dbc languageName: node linkType: hard @@ -350,13 +350,13 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/signing-key@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - bn.js: ^5.2.1 - elliptic: 6.5.4 - hash.js: 1.1.7 - checksum: 8f8de09b0aac709683bbb49339bc0a4cd2f95598f3546436c65d6f3c3a847ffa98e06d35e9ed2b17d8030bd2f02db9b7bd2e11c5cf8a71aad4537487ab4cf03a + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + elliptic: "npm:6.5.4" + hash.js: "npm:1.1.7" + checksum: 8/8f8de09b0aac709683bbb49339bc0a4cd2f95598f3546436c65d6f3c3a847ffa98e06d35e9ed2b17d8030bd2f02db9b7bd2e11c5cf8a71aad4537487ab4cf03a languageName: node linkType: hard @@ -364,13 +364,13 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/solidity@npm:5.7.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/sha2": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 9a02f37f801c96068c3e7721f83719d060175bc4e80439fe060e92bd7acfcb6ac1330c7e71c49f4c2535ca1308f2acdcb01e00133129aac00581724c2d6293f3 + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 8/9a02f37f801c96068c3e7721f83719d060175bc4e80439fe060e92bd7acfcb6ac1330c7e71c49f4c2535ca1308f2acdcb01e00133129aac00581724c2d6293f3 languageName: node linkType: hard @@ -378,10 +378,10 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/strings@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - checksum: 5ff78693ae3fdf3cf23e1f6dc047a61e44c8197d2408c42719fef8cb7b7b3613a4eec88ac0ed1f9f5558c74fe0de7ae3195a29ca91a239c74b9f444d8e8b50df + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/5ff78693ae3fdf3cf23e1f6dc047a61e44c8197d2408c42719fef8cb7b7b3613a4eec88ac0ed1f9f5558c74fe0de7ae3195a29ca91a239c74b9f444d8e8b50df languageName: node linkType: hard @@ -389,16 +389,16 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/transactions@npm:5.7.0" dependencies: - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/rlp": ^5.7.0 - "@ethersproject/signing-key": ^5.7.0 - checksum: a31b71996d2b283f68486241bff0d3ea3f1ba0e8f1322a8fffc239ccc4f4a7eb2ea9994b8fd2f093283fd75f87bae68171e01b6265261f821369aca319884a79 + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + checksum: 8/a31b71996d2b283f68486241bff0d3ea3f1ba0e8f1322a8fffc239ccc4f4a7eb2ea9994b8fd2f093283fd75f87bae68171e01b6265261f821369aca319884a79 languageName: node linkType: hard @@ -406,10 +406,10 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/units@npm:5.7.0" dependencies: - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - checksum: 304714f848cd32e57df31bf545f7ad35c2a72adae957198b28cbc62166daa929322a07bff6e9c9ac4577ab6aa0de0546b065ed1b2d20b19e25748b7d475cb0fc + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 8/304714f848cd32e57df31bf545f7ad35c2a72adae957198b28cbc62166daa929322a07bff6e9c9ac4577ab6aa0de0546b065ed1b2d20b19e25748b7d475cb0fc languageName: node linkType: hard @@ -417,22 +417,22 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/wallet@npm:5.7.0" dependencies: - "@ethersproject/abstract-provider": ^5.7.0 - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/hash": ^5.7.0 - "@ethersproject/hdnode": ^5.7.0 - "@ethersproject/json-wallets": ^5.7.0 - "@ethersproject/keccak256": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/random": ^5.7.0 - "@ethersproject/signing-key": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/wordlists": ^5.7.0 - checksum: a4009bf7331eddab38e3015b5e9101ef92de7f705b00a6196b997db0e5635b6d83561674d46c90c6f77b87c0500fe4a6b0183ba13749efc22db59c99deb82fbd + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/json-wallets": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 8/a4009bf7331eddab38e3015b5e9101ef92de7f705b00a6196b997db0e5635b6d83561674d46c90c6f77b87c0500fe4a6b0183ba13749efc22db59c99deb82fbd languageName: node linkType: hard @@ -440,12 +440,12 @@ __metadata: version: 5.7.1 resolution: "@ethersproject/web@npm:5.7.1" dependencies: - "@ethersproject/base64": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 7028c47103f82fd2e2c197ce0eecfacaa9180ffeec7de7845b1f4f9b19d84081b7a48227aaddde05a4aaa526af574a9a0ce01cc0fc75e3e371f84b38b5b16b2b + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 8/7028c47103f82fd2e2c197ce0eecfacaa9180ffeec7de7845b1f4f9b19d84081b7a48227aaddde05a4aaa526af574a9a0ce01cc0fc75e3e371f84b38b5b16b2b languageName: node linkType: hard @@ -453,19 +453,19 @@ __metadata: version: 5.7.0 resolution: "@ethersproject/wordlists@npm:5.7.0" dependencies: - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/hash": ^5.7.0 - "@ethersproject/logger": ^5.7.0 - "@ethersproject/properties": ^5.7.0 - "@ethersproject/strings": ^5.7.0 - checksum: 30eb6eb0731f9ef5faa44bf9c0c6e950bcaaef61e4d2d9ce0ae6d341f4e2d6d1f4ab4f8880bfce03b7aac4b862fb740e1421170cfbf8e2aafc359277d49e6e97 + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 8/30eb6eb0731f9ef5faa44bf9c0c6e950bcaaef61e4d2d9ce0ae6d341f4e2d6d1f4ab4f8880bfce03b7aac4b862fb740e1421170cfbf8e2aafc359277d49e6e97 languageName: node linkType: hard "@fastify/busboy@npm:^2.0.0": version: 2.0.0 resolution: "@fastify/busboy@npm:2.0.0" - checksum: 41879937ce1dee6421ef9cd4da53239830617e1f0bb7a0e843940772cd72827205d05e518af6adabe6e1ea19301285fff432b9d11bad01a531e698bea95c781b + checksum: 8/41879937ce1dee6421ef9cd4da53239830617e1f0bb7a0e843940772cd72827205d05e518af6adabe6e1ea19301285fff432b9d11bad01a531e698bea95c781b languageName: node linkType: hard @@ -473,27 +473,27 @@ __metadata: version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" dependencies: - string-width: ^5.1.2 + string-width: "npm:^5.1.2" string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 + strip-ansi: "npm:^7.0.1" strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 + wrap-ansi: "npm:^8.1.0" wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + checksum: 8/4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb languageName: node linkType: hard "@jridgewell/resolve-uri@npm:^3.0.3": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + checksum: 8/f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 languageName: node linkType: hard "@jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + checksum: 8/b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 languageName: node linkType: hard @@ -501,9 +501,9 @@ __metadata: version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 8/d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef languageName: node linkType: hard @@ -511,26 +511,26 @@ __metadata: version: 4.0.1 resolution: "@metamask/eth-sig-util@npm:4.0.1" dependencies: - ethereumjs-abi: ^0.6.8 - ethereumjs-util: ^6.2.1 - ethjs-util: ^0.1.6 - tweetnacl: ^1.0.3 - tweetnacl-util: ^0.15.1 - checksum: 740df4c92a1282e6be4c00c86c1a8ccfb93e767596e43f6da895aa5bab4a28fc3c2209f0327db34924a4a1e9db72bc4d3dddfcfc45cca0b218c9ccbf7d1b1445 + ethereumjs-abi: "npm:^0.6.8" + ethereumjs-util: "npm:^6.2.1" + ethjs-util: "npm:^0.1.6" + tweetnacl: "npm:^1.0.3" + tweetnacl-util: "npm:^0.15.1" + checksum: 8/740df4c92a1282e6be4c00c86c1a8ccfb93e767596e43f6da895aa5bab4a28fc3c2209f0327db34924a4a1e9db72bc4d3dddfcfc45cca0b218c9ccbf7d1b1445 languageName: node linkType: hard "@noble/hashes@npm:1.2.0, @noble/hashes@npm:~1.2.0": version: 1.2.0 resolution: "@noble/hashes@npm:1.2.0" - checksum: 8ca080ce557b8f40fb2f78d3aedffd95825a415ac8e13d7ffe3643f8626a8c2d99a3e5975b555027ac24316d8b3c02a35b8358567c0c23af681e6573602aa434 + checksum: 8/8ca080ce557b8f40fb2f78d3aedffd95825a415ac8e13d7ffe3643f8626a8c2d99a3e5975b555027ac24316d8b3c02a35b8358567c0c23af681e6573602aa434 languageName: node linkType: hard "@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:~1.7.0": version: 1.7.1 resolution: "@noble/secp256k1@npm:1.7.1" - checksum: d2301f1f7690368d8409a3152450458f27e54df47e3f917292de3de82c298770890c2de7c967d237eff9c95b70af485389a9695f73eb05a43e2bd562d18b18cb + checksum: 8/d2301f1f7690368d8409a3152450458f27e54df47e3f917292de3de82c298770890c2de7c967d237eff9c95b70af485389a9695f73eb05a43e2bd562d18b18cb languageName: node linkType: hard @@ -538,14 +538,14 @@ __metadata: version: 5.0.2 resolution: "@nomicfoundation/ethereumjs-block@npm:5.0.2" dependencies: - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-trie": 6.0.2 - "@nomicfoundation/ethereumjs-tx": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - ethereum-cryptography: 0.1.3 - ethers: ^5.7.1 - checksum: 7ff744f44a01f1c059ca7812a1cfc8089f87aa506af6cb39c78331dca71b32993cbd6fa05ad03f8c4f4fab73bb998a927af69e0d8ff01ae192ee5931606e09f5 + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + ethereum-cryptography: "npm:0.1.3" + ethers: "npm:^5.7.1" + checksum: 8/7ff744f44a01f1c059ca7812a1cfc8089f87aa506af6cb39c78331dca71b32993cbd6fa05ad03f8c4f4fab73bb998a927af69e0d8ff01ae192ee5931606e09f5 languageName: node linkType: hard @@ -553,20 +553,20 @@ __metadata: version: 7.0.2 resolution: "@nomicfoundation/ethereumjs-blockchain@npm:7.0.2" dependencies: - "@nomicfoundation/ethereumjs-block": 5.0.2 - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-ethash": 3.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-trie": 6.0.2 - "@nomicfoundation/ethereumjs-tx": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - abstract-level: ^1.0.3 - debug: ^4.3.3 - ethereum-cryptography: 0.1.3 - level: ^8.0.0 - lru-cache: ^5.1.1 - memory-level: ^1.0.0 - checksum: b7e440dcd73e32aa72d13bfd28cb472773c9c60ea808a884131bf7eb3f42286ad594a0864215f599332d800f3fe1f772fff4b138d2dcaa8f41e4d8389bff33e7 + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-ethash": "npm:3.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + abstract-level: "npm:^1.0.3" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + level: "npm:^8.0.0" + lru-cache: "npm:^5.1.1" + memory-level: "npm:^1.0.0" + checksum: 8/b7e440dcd73e32aa72d13bfd28cb472773c9c60ea808a884131bf7eb3f42286ad594a0864215f599332d800f3fe1f772fff4b138d2dcaa8f41e4d8389bff33e7 languageName: node linkType: hard @@ -574,9 +574,9 @@ __metadata: version: 4.0.2 resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.2" dependencies: - "@nomicfoundation/ethereumjs-util": 9.0.2 - crc-32: ^1.2.0 - checksum: f0d84704d6254d374299c19884312bd5666974b4b6f342d3f10bc76e549de78d20e45a53d25fbdc146268a52335497127e4f069126da7c60ac933a158e704887 + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + crc-32: "npm:^1.2.0" + checksum: 8/f0d84704d6254d374299c19884312bd5666974b4b6f342d3f10bc76e549de78d20e45a53d25fbdc146268a52335497127e4f069126da7c60ac933a158e704887 languageName: node linkType: hard @@ -584,13 +584,13 @@ __metadata: version: 3.0.2 resolution: "@nomicfoundation/ethereumjs-ethash@npm:3.0.2" dependencies: - "@nomicfoundation/ethereumjs-block": 5.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - abstract-level: ^1.0.3 - bigint-crypto-utils: ^3.0.23 - ethereum-cryptography: 0.1.3 - checksum: e4011e4019dd9b92f7eeebfc1e6c9a9685c52d8fd0ee4f28f03e50048a23b600c714490827f59fdce497b3afb503b3fd2ebf6815ff307e9949c3efeff1403278 + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + abstract-level: "npm:^1.0.3" + bigint-crypto-utils: "npm:^3.0.23" + ethereum-cryptography: "npm:0.1.3" + checksum: 8/e4011e4019dd9b92f7eeebfc1e6c9a9685c52d8fd0ee4f28f03e50048a23b600c714490827f59fdce497b3afb503b3fd2ebf6815ff307e9949c3efeff1403278 languageName: node linkType: hard @@ -598,15 +598,15 @@ __metadata: version: 2.0.2 resolution: "@nomicfoundation/ethereumjs-evm@npm:2.0.2" dependencies: - "@ethersproject/providers": ^5.7.1 - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-tx": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - debug: ^4.3.3 - ethereum-cryptography: 0.1.3 - mcl-wasm: ^0.7.1 - rustbn.js: ~0.2.0 - checksum: a23cf570836ddc147606b02df568069de946108e640f902358fef67e589f6b371d856056ee44299d9b4e3497f8ae25faa45e6b18fefd90e9b222dc6a761d85f0 + "@ethersproject/providers": "npm:^5.7.1" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + mcl-wasm: "npm:^0.7.1" + rustbn.js: "npm:~0.2.0" + checksum: 8/a23cf570836ddc147606b02df568069de946108e640f902358fef67e589f6b371d856056ee44299d9b4e3497f8ae25faa45e6b18fefd90e9b222dc6a761d85f0 languageName: node linkType: hard @@ -615,7 +615,7 @@ __metadata: resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.2" bin: rlp: bin/rlp - checksum: a74434cadefca9aa8754607cc1ad7bb4bbea4ee61c6214918e60a5bbee83206850346eb64e39fd1fe97f854c7ec0163e01148c0c881dda23881938f0645a0ef2 + checksum: 8/a74434cadefca9aa8754607cc1ad7bb4bbea4ee61c6214918e60a5bbee83206850346eb64e39fd1fe97f854c7ec0163e01148c0c881dda23881938f0645a0ef2 languageName: node linkType: hard @@ -623,13 +623,13 @@ __metadata: version: 2.0.2 resolution: "@nomicfoundation/ethereumjs-statemanager@npm:2.0.2" dependencies: - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - debug: ^4.3.3 - ethereum-cryptography: 0.1.3 - ethers: ^5.7.1 - js-sdsl: ^4.1.4 - checksum: 3ab6578e252e53609afd98d8ba42a99f182dcf80252f23ed9a5e0471023ffb2502130f85fc47fa7c94cd149f9be799ed9a0942ca52a143405be9267f4ad94e64 + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + ethers: "npm:^5.7.1" + js-sdsl: "npm:^4.1.4" + checksum: 8/3ab6578e252e53609afd98d8ba42a99f182dcf80252f23ed9a5e0471023ffb2502130f85fc47fa7c94cd149f9be799ed9a0942ca52a143405be9267f4ad94e64 languageName: node linkType: hard @@ -637,12 +637,12 @@ __metadata: version: 6.0.2 resolution: "@nomicfoundation/ethereumjs-trie@npm:6.0.2" dependencies: - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - "@types/readable-stream": ^2.3.13 - ethereum-cryptography: 0.1.3 - readable-stream: ^3.6.0 - checksum: d4da918d333851b9f2cce7dbd25ab5753e0accd43d562d98fd991b168b6a08d1794528f0ade40fe5617c84900378376fe6256cdbe52c8d66bf4c53293bbc7c40 + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + "@types/readable-stream": "npm:^2.3.13" + ethereum-cryptography: "npm:0.1.3" + readable-stream: "npm:^3.6.0" + checksum: 8/d4da918d333851b9f2cce7dbd25ab5753e0accd43d562d98fd991b168b6a08d1794528f0ade40fe5617c84900378376fe6256cdbe52c8d66bf4c53293bbc7c40 languageName: node linkType: hard @@ -650,13 +650,13 @@ __metadata: version: 5.0.2 resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.2" dependencies: - "@chainsafe/ssz": ^0.9.2 - "@ethersproject/providers": ^5.7.2 - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - ethereum-cryptography: 0.1.3 - checksum: 0bbcea75786b2ccb559afe2ecc9866fb4566a9f157b6ffba4f50960d14f4b3da2e86e273f6fadda9b860e67cfcabf589970fb951b328cb5f900a585cd21842a2 + "@chainsafe/ssz": "npm:^0.9.2" + "@ethersproject/providers": "npm:^5.7.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + ethereum-cryptography: "npm:0.1.3" + checksum: 8/0bbcea75786b2ccb559afe2ecc9866fb4566a9f157b6ffba4f50960d14f4b3da2e86e273f6fadda9b860e67cfcabf589970fb951b328cb5f900a585cd21842a2 languageName: node linkType: hard @@ -664,10 +664,10 @@ __metadata: version: 9.0.2 resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.2" dependencies: - "@chainsafe/ssz": ^0.10.0 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - ethereum-cryptography: 0.1.3 - checksum: 3a08f7b88079ef9f53b43da9bdcb8195498fd3d3911c2feee2571f4d1204656053f058b2f650471c86f7d2d0ba2f814768c7cfb0f266eede41c848356afc4900 + "@chainsafe/ssz": "npm:^0.10.0" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + ethereum-cryptography: "npm:0.1.3" + checksum: 8/3a08f7b88079ef9f53b43da9bdcb8195498fd3d3911c2feee2571f4d1204656053f058b2f650471c86f7d2d0ba2f814768c7cfb0f266eede41c848356afc4900 languageName: node linkType: hard @@ -675,20 +675,20 @@ __metadata: version: 7.0.2 resolution: "@nomicfoundation/ethereumjs-vm@npm:7.0.2" dependencies: - "@nomicfoundation/ethereumjs-block": 5.0.2 - "@nomicfoundation/ethereumjs-blockchain": 7.0.2 - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-evm": 2.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-statemanager": 2.0.2 - "@nomicfoundation/ethereumjs-trie": 6.0.2 - "@nomicfoundation/ethereumjs-tx": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - debug: ^4.3.3 - ethereum-cryptography: 0.1.3 - mcl-wasm: ^0.7.1 - rustbn.js: ~0.2.0 - checksum: 1c25ba4d0644cadb8a2b0241a4bb02e578bfd7f70e3492b855c2ab5c120cb159cb8f7486f84dc1597884bd1697feedbfb5feb66e91352afb51f3694fd8e4a043 + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-evm": "npm:2.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + mcl-wasm: "npm:^0.7.1" + rustbn.js: "npm:~0.2.0" + checksum: 8/1c25ba4d0644cadb8a2b0241a4bb02e578bfd7f70e3492b855c2ab5c120cb159cb8f7486f84dc1597884bd1697feedbfb5feb66e91352afb51f3694fd8e4a043 languageName: node linkType: hard @@ -766,16 +766,16 @@ __metadata: version: 0.1.1 resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.1" dependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64": 0.1.1 - "@nomicfoundation/solidity-analyzer-darwin-x64": 0.1.1 - "@nomicfoundation/solidity-analyzer-freebsd-x64": 0.1.1 - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.1.1 - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.1.1 - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.1.1 - "@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.1.1 - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.1.1 - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.1.1 - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.1.1 + "@nomicfoundation/solidity-analyzer-darwin-arm64": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-darwin-x64": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-freebsd-x64": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "npm:0.1.1" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "npm:0.1.1" dependenciesMeta: "@nomicfoundation/solidity-analyzer-darwin-arm64": optional: true @@ -797,7 +797,7 @@ __metadata: optional: true "@nomicfoundation/solidity-analyzer-win32-x64-msvc": optional: true - checksum: 038cffafd5769e25256b5b8bef88d95cc1c021274a65c020cf84aceb3237752a3b51645fdb0687f5516a2bdfebf166fcf50b08ab64857925100213e0654b266b + checksum: 8/038cffafd5769e25256b5b8bef88d95cc1c021274a65c020cf84aceb3237752a3b51645fdb0687f5516a2bdfebf166fcf50b08ab64857925100213e0654b266b languageName: node linkType: hard @@ -805,22 +805,22 @@ __metadata: version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" dependencies: - semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + semver: "npm:^7.3.5" + checksum: 8/a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e languageName: node linkType: hard "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + checksum: 8/6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f languageName: node linkType: hard "@scure/base@npm:~1.1.0": version: 1.1.3 resolution: "@scure/base@npm:1.1.3" - checksum: 1606ab8a4db898cb3a1ada16c15437c3bce4e25854fadc8eb03ae93cbbbac1ed90655af4b0be3da37e12056fef11c0374499f69b9e658c9e5b7b3e06353c630c + checksum: 8/1606ab8a4db898cb3a1ada16c15437c3bce4e25854fadc8eb03ae93cbbbac1ed90655af4b0be3da37e12056fef11c0374499f69b9e658c9e5b7b3e06353c630c languageName: node linkType: hard @@ -828,10 +828,10 @@ __metadata: version: 1.1.5 resolution: "@scure/bip32@npm:1.1.5" dependencies: - "@noble/hashes": ~1.2.0 - "@noble/secp256k1": ~1.7.0 - "@scure/base": ~1.1.0 - checksum: b08494ab0d2b1efee7226d1b5100db5157ebea22a78bb87126982a76a186cb3048413e8be0ba2622d00d048a20acbba527af730de86c132a77de616eb9907a3b + "@noble/hashes": "npm:~1.2.0" + "@noble/secp256k1": "npm:~1.7.0" + "@scure/base": "npm:~1.1.0" + checksum: 8/b08494ab0d2b1efee7226d1b5100db5157ebea22a78bb87126982a76a186cb3048413e8be0ba2622d00d048a20acbba527af730de86c132a77de616eb9907a3b languageName: node linkType: hard @@ -839,9 +839,9 @@ __metadata: version: 1.1.1 resolution: "@scure/bip39@npm:1.1.1" dependencies: - "@noble/hashes": ~1.2.0 - "@scure/base": ~1.1.0 - checksum: fbb594c50696fa9c14e891d872f382e50a3f919b6c96c55ef2fb10c7102c546dafb8f099a62bd114c12a00525b595dcf7381846f383f0ddcedeaa6e210747d2f + "@noble/hashes": "npm:~1.2.0" + "@scure/base": "npm:~1.1.0" + checksum: 8/fbb594c50696fa9c14e891d872f382e50a3f919b6c96c55ef2fb10c7102c546dafb8f099a62bd114c12a00525b595dcf7381846f383f0ddcedeaa6e210747d2f languageName: node linkType: hard @@ -849,12 +849,12 @@ __metadata: version: 5.30.0 resolution: "@sentry/core@npm:5.30.0" dependencies: - "@sentry/hub": 5.30.0 - "@sentry/minimal": 5.30.0 - "@sentry/types": 5.30.0 - "@sentry/utils": 5.30.0 - tslib: ^1.9.3 - checksum: 8a2b22687e70d76fa4381bce215d770b6c08561c5ff5d6afe39c8c3c509c18ee7384ad0be3aee18d3a858a3c88e1d2821cf10eb5e05646376a33200903b56da2 + "@sentry/hub": "npm:5.30.0" + "@sentry/minimal": "npm:5.30.0" + "@sentry/types": "npm:5.30.0" + "@sentry/utils": "npm:5.30.0" + tslib: "npm:^1.9.3" + checksum: 8/8a2b22687e70d76fa4381bce215d770b6c08561c5ff5d6afe39c8c3c509c18ee7384ad0be3aee18d3a858a3c88e1d2821cf10eb5e05646376a33200903b56da2 languageName: node linkType: hard @@ -862,10 +862,10 @@ __metadata: version: 5.30.0 resolution: "@sentry/hub@npm:5.30.0" dependencies: - "@sentry/types": 5.30.0 - "@sentry/utils": 5.30.0 - tslib: ^1.9.3 - checksum: 09f778cc78765213f1e35a3ee6da3a8e02a706e8a7e5b7f84614707f4b665c7297b700a1849ab2ca1f02ede5884fd9ae893e58dc65f04f35ccdfee17e99ee93d + "@sentry/types": "npm:5.30.0" + "@sentry/utils": "npm:5.30.0" + tslib: "npm:^1.9.3" + checksum: 8/09f778cc78765213f1e35a3ee6da3a8e02a706e8a7e5b7f84614707f4b665c7297b700a1849ab2ca1f02ede5884fd9ae893e58dc65f04f35ccdfee17e99ee93d languageName: node linkType: hard @@ -873,10 +873,10 @@ __metadata: version: 5.30.0 resolution: "@sentry/minimal@npm:5.30.0" dependencies: - "@sentry/hub": 5.30.0 - "@sentry/types": 5.30.0 - tslib: ^1.9.3 - checksum: 934650f6989ce51f425c7c4b4d4d9bfecface8162a36d21df8a241f780ab1716dd47b81e2170e4cc624797ed1eebe10f71e4876c1e25b787860daaef75ca7a0c + "@sentry/hub": "npm:5.30.0" + "@sentry/types": "npm:5.30.0" + tslib: "npm:^1.9.3" + checksum: 8/934650f6989ce51f425c7c4b4d4d9bfecface8162a36d21df8a241f780ab1716dd47b81e2170e4cc624797ed1eebe10f71e4876c1e25b787860daaef75ca7a0c languageName: node linkType: hard @@ -884,16 +884,16 @@ __metadata: version: 5.30.0 resolution: "@sentry/node@npm:5.30.0" dependencies: - "@sentry/core": 5.30.0 - "@sentry/hub": 5.30.0 - "@sentry/tracing": 5.30.0 - "@sentry/types": 5.30.0 - "@sentry/utils": 5.30.0 - cookie: ^0.4.1 - https-proxy-agent: ^5.0.0 - lru_map: ^0.3.3 - tslib: ^1.9.3 - checksum: 5f0367cc52f9d716c64ba727e2a5c8592364494c8fdadfb3df2d0ee9d7956b886fb3ec674370292d2a7b7e1d9a8e1b84c69c06e8a4a064be8d4687698df0090c + "@sentry/core": "npm:5.30.0" + "@sentry/hub": "npm:5.30.0" + "@sentry/tracing": "npm:5.30.0" + "@sentry/types": "npm:5.30.0" + "@sentry/utils": "npm:5.30.0" + cookie: "npm:^0.4.1" + https-proxy-agent: "npm:^5.0.0" + lru_map: "npm:^0.3.3" + tslib: "npm:^1.9.3" + checksum: 8/5f0367cc52f9d716c64ba727e2a5c8592364494c8fdadfb3df2d0ee9d7956b886fb3ec674370292d2a7b7e1d9a8e1b84c69c06e8a4a064be8d4687698df0090c languageName: node linkType: hard @@ -901,19 +901,19 @@ __metadata: version: 5.30.0 resolution: "@sentry/tracing@npm:5.30.0" dependencies: - "@sentry/hub": 5.30.0 - "@sentry/minimal": 5.30.0 - "@sentry/types": 5.30.0 - "@sentry/utils": 5.30.0 - tslib: ^1.9.3 - checksum: 720c07b111e8128e70a939ab4e9f9cfd13dc23303b27575afddabab08d08f9b94499017c76a9ffe253bf3ca40833e8f9262cf6dc546ba24da6eb74fedae5f92b + "@sentry/hub": "npm:5.30.0" + "@sentry/minimal": "npm:5.30.0" + "@sentry/types": "npm:5.30.0" + "@sentry/utils": "npm:5.30.0" + tslib: "npm:^1.9.3" + checksum: 8/720c07b111e8128e70a939ab4e9f9cfd13dc23303b27575afddabab08d08f9b94499017c76a9ffe253bf3ca40833e8f9262cf6dc546ba24da6eb74fedae5f92b languageName: node linkType: hard "@sentry/types@npm:5.30.0": version: 5.30.0 resolution: "@sentry/types@npm:5.30.0" - checksum: de7df777824c8e311f143c6fd7de220b24f25b5018312fe8f67d93bebf0f3cdd32bbca9f155846f5c31441d940eebe27c8338000321559a743264c7e41dda560 + checksum: 8/de7df777824c8e311f143c6fd7de220b24f25b5018312fe8f67d93bebf0f3cdd32bbca9f155846f5c31441d940eebe27c8338000321559a743264c7e41dda560 languageName: node linkType: hard @@ -921,44 +921,44 @@ __metadata: version: 5.30.0 resolution: "@sentry/utils@npm:5.30.0" dependencies: - "@sentry/types": 5.30.0 - tslib: ^1.9.3 - checksum: 27b259a136c664427641dd32ee3dc490553f3b5e92986accfa829d14063ebc69b191e92209ac9c40fbc367f74cfa17dc93b4c40981d666711fd57b4d51a82062 + "@sentry/types": "npm:5.30.0" + tslib: "npm:^1.9.3" + checksum: 8/27b259a136c664427641dd32ee3dc490553f3b5e92986accfa829d14063ebc69b191e92209ac9c40fbc367f74cfa17dc93b4c40981d666711fd57b4d51a82062 languageName: node linkType: hard "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + checksum: 8/ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 languageName: node linkType: hard "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" - checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + checksum: 8/a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df languageName: node linkType: hard "@tsconfig/node12@npm:^1.0.7": version: 1.0.11 resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + checksum: 8/5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a languageName: node linkType: hard "@tsconfig/node14@npm:^1.0.0": version: 1.0.3 resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + checksum: 8/19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d languageName: node linkType: hard "@tsconfig/node16@npm:^1.0.2": version: 1.0.4 resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + checksum: 8/202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff languageName: node linkType: hard @@ -966,8 +966,8 @@ __metadata: version: 4.11.6 resolution: "@types/bn.js@npm:4.11.6" dependencies: - "@types/node": "*" - checksum: 7f66f2c7b7b9303b3205a57184261974b114495736b77853af5b18d857c0b33e82ce7146911e86e87a87837de8acae28986716fd381ac7c301fd6e8d8b6c811f + "@types/node": "npm:*" + checksum: 8/7f66f2c7b7b9303b3205a57184261974b114495736b77853af5b18d857c0b33e82ce7146911e86e87a87837de8acae28986716fd381ac7c301fd6e8d8b6c811f languageName: node linkType: hard @@ -975,15 +975,15 @@ __metadata: version: 5.1.2 resolution: "@types/bn.js@npm:5.1.2" dependencies: - "@types/node": "*" - checksum: 8d9fdb43836646c2ecd445041de03e057f9b459885be57faee64104160487a63730b9f371e8ad7d33f360b3cc6dc0e323543962fc5fa296b92b322b946732be0 + "@types/node": "npm:*" + checksum: 8/8d9fdb43836646c2ecd445041de03e057f9b459885be57faee64104160487a63730b9f371e8ad7d33f360b3cc6dc0e323543962fc5fa296b92b322b946732be0 languageName: node linkType: hard "@types/lru-cache@npm:^5.1.0": version: 5.1.1 resolution: "@types/lru-cache@npm:5.1.1" - checksum: e1d6c0085f61b16ec5b3073ec76ad1be4844ea036561c3f145fc19f71f084b58a6eb600b14128aa95809d057d28f1d147c910186ae51219f58366ffd2ff2e118 + checksum: 8/e1d6c0085f61b16ec5b3073ec76ad1be4844ea036561c3f145fc19f71f084b58a6eb600b14128aa95809d057d28f1d147c910186ae51219f58366ffd2ff2e118 languageName: node linkType: hard @@ -991,8 +991,8 @@ __metadata: version: 20.8.6 resolution: "@types/node@npm:20.8.6" dependencies: - undici-types: ~5.25.1 - checksum: ccfb7ac482c5a96edeb239893c5c099f5257fcc2ed9ae62fefdfbc782b79e16dbc2af9a85b379665237bf759904b44ca2be68e75d239e0297882aad42f61905c + undici-types: "npm:~5.25.1" + checksum: 8/ccfb7ac482c5a96edeb239893c5c099f5257fcc2ed9ae62fefdfbc782b79e16dbc2af9a85b379665237bf759904b44ca2be68e75d239e0297882aad42f61905c languageName: node linkType: hard @@ -1000,15 +1000,15 @@ __metadata: version: 3.1.0 resolution: "@types/pbkdf2@npm:3.1.0" dependencies: - "@types/node": "*" - checksum: d15024b1957c21cf3b8887329d9bd8dfde754cf13a09d76ae25f1391cfc62bb8b8d7b760773c5dbaa748172fba8b3e0c3dbe962af6ccbd69b76df12a48dfba40 + "@types/node": "npm:*" + checksum: 8/d15024b1957c21cf3b8887329d9bd8dfde754cf13a09d76ae25f1391cfc62bb8b8d7b760773c5dbaa748172fba8b3e0c3dbe962af6ccbd69b76df12a48dfba40 languageName: node linkType: hard "@types/qs@npm:^6.9.7": version: 6.9.8 resolution: "@types/qs@npm:6.9.8" - checksum: c28e07d00d07970e5134c6eed184a0189b8a4649e28fdf36d9117fe671c067a44820890de6bdecef18217647a95e9c6aebdaaae69f5fe4b0bec9345db885f77e + checksum: 8/c28e07d00d07970e5134c6eed184a0189b8a4649e28fdf36d9117fe671c067a44820890de6bdecef18217647a95e9c6aebdaaae69f5fe4b0bec9345db885f77e languageName: node linkType: hard @@ -1016,9 +1016,9 @@ __metadata: version: 2.3.15 resolution: "@types/readable-stream@npm:2.3.15" dependencies: - "@types/node": "*" - safe-buffer: ~5.1.1 - checksum: ec36f525cad09b6c65a1dafcb5ad99b9e2ed824ec49b7aa23180ac427e5d35b8a0706193ecd79ab4253a283ad485ba03d5917a98daaaa144f0ea34f4823e9d82 + "@types/node": "npm:*" + safe-buffer: "npm:~5.1.1" + checksum: 8/ec36f525cad09b6c65a1dafcb5ad99b9e2ed824ec49b7aa23180ac427e5d35b8a0706193ecd79ab4253a283ad485ba03d5917a98daaaa144f0ea34f4823e9d82 languageName: node linkType: hard @@ -1026,15 +1026,15 @@ __metadata: version: 4.0.4 resolution: "@types/secp256k1@npm:4.0.4" dependencies: - "@types/node": "*" - checksum: 6f521a08486a98e71c8529f5c3119f99e610196a47243cc6052c6160b216dff2c85dc50a8f3208ed47028dbb470bbb6fdee47a3fdc064687e46021d5a712767c + "@types/node": "npm:*" + checksum: 8/6f521a08486a98e71c8529f5c3119f99e610196a47243cc6052c6160b216dff2c85dc50a8f3208ed47028dbb470bbb6fdee47a3fdc064687e46021d5a712767c languageName: node linkType: hard "abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + checksum: 8/a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 languageName: node linkType: hard @@ -1042,21 +1042,21 @@ __metadata: version: 1.0.3 resolution: "abstract-level@npm:1.0.3" dependencies: - buffer: ^6.0.3 - catering: ^2.1.0 - is-buffer: ^2.0.5 - level-supports: ^4.0.0 - level-transcoder: ^1.0.1 - module-error: ^1.0.1 - queue-microtask: ^1.2.3 - checksum: 70d61a3924526ebc257b138992052f9ff571a6cee5a7660836e37a1cc7081273c3acf465dd2f5e1897b38dc743a6fd9dba14a5d8a2a9d39e5787cd3da99f301d + buffer: "npm:^6.0.3" + catering: "npm:^2.1.0" + is-buffer: "npm:^2.0.5" + level-supports: "npm:^4.0.0" + level-transcoder: "npm:^1.0.1" + module-error: "npm:^1.0.1" + queue-microtask: "npm:^1.2.3" + checksum: 8/70d61a3924526ebc257b138992052f9ff571a6cee5a7660836e37a1cc7081273c3acf465dd2f5e1897b38dc743a6fd9dba14a5d8a2a9d39e5787cd3da99f301d languageName: node linkType: hard "acorn-walk@npm:^8.1.1": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + checksum: 8/1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 languageName: node linkType: hard @@ -1065,21 +1065,21 @@ __metadata: resolution: "acorn@npm:8.10.0" bin: acorn: bin/acorn - checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + checksum: 8/538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d languageName: node linkType: hard "adm-zip@npm:^0.4.16": version: 0.4.16 resolution: "adm-zip@npm:0.4.16" - checksum: 5ea46664d8b3b073fffeb7f934705fea288708745e708cffc1dd732ce3d2672cecd476b243f9d051892fd12952db2b6bd061975e1ff40057246f6d0cb6534a50 + checksum: 8/5ea46664d8b3b073fffeb7f934705fea288708745e708cffc1dd732ce3d2672cecd476b243f9d051892fd12952db2b6bd061975e1ff40057246f6d0cb6534a50 languageName: node linkType: hard "aes-js@npm:3.0.0": version: 3.0.0 resolution: "aes-js@npm:3.0.0" - checksum: 251e26d533cd1a915b44896b17d5ed68c24a02484cfdd2e74ec700a309267db96651ea4eb657bf20aac32a3baa61f6e34edf8e2fec2de440a655da9942d334b8 + checksum: 8/251e26d533cd1a915b44896b17d5ed68c24a02484cfdd2e74ec700a309267db96651ea4eb657bf20aac32a3baa61f6e34edf8e2fec2de440a655da9942d334b8 languageName: node linkType: hard @@ -1087,8 +1087,8 @@ __metadata: version: 6.0.2 resolution: "agent-base@npm:6.0.2" dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + debug: "npm:4" + checksum: 8/f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d languageName: node linkType: hard @@ -1096,8 +1096,8 @@ __metadata: version: 4.5.0 resolution: "agentkeepalive@npm:4.5.0" dependencies: - humanize-ms: ^1.2.1 - checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + humanize-ms: "npm:^1.2.1" + checksum: 8/13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard @@ -1105,23 +1105,23 @@ __metadata: version: 3.1.0 resolution: "aggregate-error@npm:3.1.0" dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 8/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 languageName: node linkType: hard "ansi-colors@npm:4.1.1": version: 4.1.1 resolution: "ansi-colors@npm:4.1.1" - checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0 + checksum: 8/138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0 languageName: node linkType: hard "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" - checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + checksum: 8/a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e languageName: node linkType: hard @@ -1129,8 +1129,8 @@ __metadata: version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + type-fest: "npm:^0.21.3" + checksum: 8/93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 languageName: node linkType: hard @@ -1138,22 +1138,22 @@ __metadata: version: 5.0.0 resolution: "ansi-escapes@npm:5.0.0" dependencies: - type-fest: ^1.0.2 - checksum: d4b5eb8207df38367945f5dd2ef41e08c28edc192dc766ef18af6b53736682f49d8bfcfa4e4d6ecbc2e2f97c258fda084fb29a9e43b69170b71090f771afccac + type-fest: "npm:^1.0.2" + checksum: 8/d4b5eb8207df38367945f5dd2ef41e08c28edc192dc766ef18af6b53736682f49d8bfcfa4e4d6ecbc2e2f97c258fda084fb29a9e43b69170b71090f771afccac languageName: node linkType: hard "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + checksum: 8/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b languageName: node linkType: hard "ansi-regex@npm:^6.0.1": version: 6.0.1 resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + checksum: 8/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 languageName: node linkType: hard @@ -1161,8 +1161,8 @@ __metadata: version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + color-convert: "npm:^1.9.0" + checksum: 8/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 languageName: node linkType: hard @@ -1170,15 +1170,15 @@ __metadata: version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + color-convert: "npm:^2.0.1" + checksum: 8/513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 languageName: node linkType: hard "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + checksum: 8/ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 languageName: node linkType: hard @@ -1186,16 +1186,16 @@ __metadata: version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 8/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 languageName: node linkType: hard "aproba@npm:^1.0.3 || ^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + checksum: 8/5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 languageName: node linkType: hard @@ -1203,30 +1203,30 @@ __metadata: version: 3.0.1 resolution: "are-we-there-yet@npm:3.0.1" dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + delegates: "npm:^1.0.0" + readable-stream: "npm:^3.6.0" + checksum: 8/52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 languageName: node linkType: hard "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + checksum: 8/544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 languageName: node linkType: hard "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + checksum: 8/83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced languageName: node linkType: hard "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + checksum: 8/7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be languageName: node linkType: hard @@ -1234,15 +1234,15 @@ __metadata: version: 0.21.4 resolution: "axios@npm:0.21.4" dependencies: - follow-redirects: ^1.14.0 - checksum: 44245f24ac971e7458f3120c92f9d66d1fc695e8b97019139de5b0cc65d9b8104647db01e5f46917728edfc0cfd88eb30fc4c55e6053eef4ace76768ce95ff3c + follow-redirects: "npm:^1.14.0" + checksum: 8/44245f24ac971e7458f3120c92f9d66d1fc695e8b97019139de5b0cc65d9b8104647db01e5f46917728edfc0cfd88eb30fc4c55e6053eef4ace76768ce95ff3c languageName: node linkType: hard "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + checksum: 8/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 languageName: node linkType: hard @@ -1250,57 +1250,57 @@ __metadata: version: 3.0.9 resolution: "base-x@npm:3.0.9" dependencies: - safe-buffer: ^5.0.1 - checksum: 957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 + safe-buffer: "npm:^5.0.1" + checksum: 8/957101d6fd09e1903e846fd8f69fd7e5e3e50254383e61ab667c725866bec54e5ece5ba49ce385128ae48f9ec93a26567d1d5ebb91f4d56ef4a9cc0d5a5481e8 languageName: node linkType: hard "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + checksum: 8/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 languageName: node linkType: hard "bech32@npm:1.1.4": version: 1.1.4 resolution: "bech32@npm:1.1.4" - checksum: 0e98db619191548390d6f09ff68b0253ba7ae6a55db93dfdbb070ba234c1fd3308c0606fbcc95fad50437227b10011e2698b89f0181f6e7f845c499bd14d0f4b + checksum: 8/0e98db619191548390d6f09ff68b0253ba7ae6a55db93dfdbb070ba234c1fd3308c0606fbcc95fad50437227b10011e2698b89f0181f6e7f845c499bd14d0f4b languageName: node linkType: hard "bigint-crypto-utils@npm:^3.0.23": version: 3.3.0 resolution: "bigint-crypto-utils@npm:3.3.0" - checksum: 9598ce57b23f776c8936d44114c9f051e62b5fa654915b664784cbcbacc5aa0485f4479571c51ff58008abb1210c0d6a234853742f07cf84bda890f2a1e01000 + checksum: 8/9598ce57b23f776c8936d44114c9f051e62b5fa654915b664784cbcbacc5aa0485f4479571c51ff58008abb1210c0d6a234853742f07cf84bda890f2a1e01000 languageName: node linkType: hard "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + checksum: 8/ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 languageName: node linkType: hard "blakejs@npm:^1.1.0": version: 1.2.1 resolution: "blakejs@npm:1.2.1" - checksum: d699ba116cfa21d0b01d12014a03e484dd76d483133e6dc9eb415aa70a119f08beb3bcefb8c71840106a00b542cba77383f8be60cd1f0d4589cb8afb922eefbe + checksum: 8/d699ba116cfa21d0b01d12014a03e484dd76d483133e6dc9eb415aa70a119f08beb3bcefb8c71840106a00b542cba77383f8be60cd1f0d4589cb8afb922eefbe languageName: node linkType: hard "bn.js@npm:^4.11.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" - checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 + checksum: 8/39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 languageName: node linkType: hard "bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" - checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 + checksum: 8/3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 languageName: node linkType: hard @@ -1308,9 +1308,9 @@ __metadata: version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 8/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 languageName: node linkType: hard @@ -1318,24 +1318,24 @@ __metadata: version: 2.0.1 resolution: "brace-expansion@npm:2.0.1" dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + balanced-match: "npm:^1.0.0" + checksum: 8/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 languageName: node linkType: hard "braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 languageName: node linkType: hard "brorand@npm:^1.1.0": version: 1.1.0 resolution: "brorand@npm:1.1.0" - checksum: 8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be + checksum: 8/8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be languageName: node linkType: hard @@ -1343,18 +1343,18 @@ __metadata: version: 1.0.1 resolution: "browser-level@npm:1.0.1" dependencies: - abstract-level: ^1.0.2 - catering: ^2.1.1 - module-error: ^1.0.2 - run-parallel-limit: ^1.1.0 - checksum: 67fbc77ce832940bfa25073eccff279f512ad56f545deb996a5b23b02316f5e76f4a79d381acc27eda983f5c9a2566aaf9c97e4fdd0748288c4407307537a29b + abstract-level: "npm:^1.0.2" + catering: "npm:^2.1.1" + module-error: "npm:^1.0.2" + run-parallel-limit: "npm:^1.1.0" + checksum: 8/67fbc77ce832940bfa25073eccff279f512ad56f545deb996a5b23b02316f5e76f4a79d381acc27eda983f5c9a2566aaf9c97e4fdd0748288c4407307537a29b languageName: node linkType: hard "browser-stdout@npm:1.3.1": version: 1.3.1 resolution: "browser-stdout@npm:1.3.1" - checksum: b717b19b25952dd6af483e368f9bcd6b14b87740c3d226c2977a65e84666ffd67000bddea7d911f111a9b6ddc822b234de42d52ab6507bce4119a4cc003ef7b3 + checksum: 8/b717b19b25952dd6af483e368f9bcd6b14b87740c3d226c2977a65e84666ffd67000bddea7d911f111a9b6ddc822b234de42d52ab6507bce4119a4cc003ef7b3 languageName: node linkType: hard @@ -1362,13 +1362,13 @@ __metadata: version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" dependencies: - buffer-xor: ^1.0.3 - cipher-base: ^1.0.0 - create-hash: ^1.1.0 - evp_bytestokey: ^1.0.3 - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 4a17c3eb55a2aa61c934c286f34921933086bf6d67f02d4adb09fcc6f2fc93977b47d9d884c25619144fccd47b3b3a399e1ad8b3ff5a346be47270114bcf7104 + buffer-xor: "npm:^1.0.3" + cipher-base: "npm:^1.0.0" + create-hash: "npm:^1.1.0" + evp_bytestokey: "npm:^1.0.3" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 8/4a17c3eb55a2aa61c934c286f34921933086bf6d67f02d4adb09fcc6f2fc93977b47d9d884c25619144fccd47b3b3a399e1ad8b3ff5a346be47270114bcf7104 languageName: node linkType: hard @@ -1376,8 +1376,8 @@ __metadata: version: 4.0.1 resolution: "bs58@npm:4.0.1" dependencies: - base-x: ^3.0.2 - checksum: b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2 + base-x: "npm:^3.0.2" + checksum: 8/b3c5365bb9e0c561e1a82f1a2d809a1a692059fae016be233a6127ad2f50a6b986467c3a50669ce4c18929dcccb297c5909314dd347a25a68c21b68eb3e95ac2 languageName: node linkType: hard @@ -1385,24 +1385,24 @@ __metadata: version: 2.1.2 resolution: "bs58check@npm:2.1.2" dependencies: - bs58: ^4.0.0 - create-hash: ^1.1.0 - safe-buffer: ^5.1.2 - checksum: 43bdf08a5dd04581b78f040bc4169480e17008da482ffe2a6507327bbc4fc5c28de0501f7faf22901cfe57fbca79cbb202ca529003fedb4cb8dccd265b38e54d + bs58: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + safe-buffer: "npm:^5.1.2" + checksum: 8/43bdf08a5dd04581b78f040bc4169480e17008da482ffe2a6507327bbc4fc5c28de0501f7faf22901cfe57fbca79cbb202ca529003fedb4cb8dccd265b38e54d languageName: node linkType: hard "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + checksum: 8/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb languageName: node linkType: hard "buffer-xor@npm:^1.0.3": version: 1.0.3 resolution: "buffer-xor@npm:1.0.3" - checksum: 10c520df29d62fa6e785e2800e586a20fc4f6dfad84bcdbd12e1e8a83856de1cb75c7ebd7abe6d036bbfab738a6cf18a3ae9c8e5a2e2eb3167ca7399ce65373a + checksum: 8/10c520df29d62fa6e785e2800e586a20fc4f6dfad84bcdbd12e1e8a83856de1cb75c7ebd7abe6d036bbfab738a6cf18a3ae9c8e5a2e2eb3167ca7399ce65373a languageName: node linkType: hard @@ -1410,16 +1410,16 @@ __metadata: version: 6.0.3 resolution: "buffer@npm:6.0.3" dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 8/5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 languageName: node linkType: hard "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" - checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e + checksum: 8/e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e languageName: node linkType: hard @@ -1427,19 +1427,19 @@ __metadata: version: 17.1.4 resolution: "cacache@npm:17.1.4" dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^7.7.1 - minipass: ^7.0.3 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^7.7.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^1.0.2" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 8/b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 languageName: node linkType: hard @@ -1447,37 +1447,37 @@ __metadata: version: 1.0.2 resolution: "call-bind@npm:1.0.2" dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + function-bind: "npm:^1.1.1" + get-intrinsic: "npm:^1.0.2" + checksum: 8/f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 languageName: node linkType: hard "camelcase@npm:^6.0.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + checksum: 8/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard "case@npm:^1.6.3": version: 1.6.3 resolution: "case@npm:1.6.3" - checksum: febe73278f910b0d28aab7efd6f51c235f9aa9e296148edb56dfb83fd58faa88308c30ce9a0122b6e53e0362c44f4407105bd5ef89c46860fc2b184e540fd68d + checksum: 8/febe73278f910b0d28aab7efd6f51c235f9aa9e296148edb56dfb83fd58faa88308c30ce9a0122b6e53e0362c44f4407105bd5ef89c46860fc2b184e540fd68d languageName: node linkType: hard "catering@npm:^2.1.0, catering@npm:^2.1.1": version: 2.1.1 resolution: "catering@npm:2.1.1" - checksum: 205daefa69c935b0c19f3d8f2e0a520dd69aebe9bda55902958003f7c9cff8f967dfb90071b421bd6eb618576f657a89d2bc0986872c9bc04bbd66655e9d4bd6 + checksum: 8/205daefa69c935b0c19f3d8f2e0a520dd69aebe9bda55902958003f7c9cff8f967dfb90071b421bd6eb618576f657a89d2bc0986872c9bc04bbd66655e9d4bd6 languageName: node linkType: hard "chalk@npm:5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + checksum: 8/623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 languageName: node linkType: hard @@ -1485,10 +1485,10 @@ __metadata: version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 8/ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 languageName: node linkType: hard @@ -1496,9 +1496,9 @@ __metadata: version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 8/fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc languageName: node linkType: hard @@ -1506,32 +1506,32 @@ __metadata: version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" dependenciesMeta: fsevents: optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + checksum: 8/b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c languageName: node linkType: hard "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + checksum: 8/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f languageName: node linkType: hard "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" - checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 + checksum: 8/3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 languageName: node linkType: hard @@ -1539,9 +1539,9 @@ __metadata: version: 1.0.4 resolution: "cipher-base@npm:1.0.4" dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 8/47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e languageName: node linkType: hard @@ -1549,20 +1549,20 @@ __metadata: version: 1.3.0 resolution: "classic-level@npm:1.3.0" dependencies: - abstract-level: ^1.0.2 - catering: ^2.1.0 - module-error: ^1.0.1 - napi-macros: ^2.2.2 - node-gyp: latest - node-gyp-build: ^4.3.0 - checksum: 773da48aef52a041115d413fee8340b357a4da2eb505764f327183b155edd7cc9d24819eb4f707c83dbdae8588024f5dddeb322125567c59d5d1f6f16334cdb9 + abstract-level: "npm:^1.0.2" + catering: "npm:^2.1.0" + module-error: "npm:^1.0.1" + napi-macros: "npm:^2.2.2" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 8/773da48aef52a041115d413fee8340b357a4da2eb505764f327183b155edd7cc9d24819eb4f707c83dbdae8588024f5dddeb322125567c59d5d1f6f16334cdb9 languageName: node linkType: hard "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + checksum: 8/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 languageName: node linkType: hard @@ -1570,8 +1570,8 @@ __metadata: version: 4.0.0 resolution: "cli-cursor@npm:4.0.0" dependencies: - restore-cursor: ^4.0.0 - checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc + restore-cursor: "npm:^4.0.0" + checksum: 8/ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc languageName: node linkType: hard @@ -1579,9 +1579,9 @@ __metadata: version: 3.1.0 resolution: "cli-truncate@npm:3.1.0" dependencies: - slice-ansi: ^5.0.0 - string-width: ^5.0.0 - checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a + slice-ansi: "npm:^5.0.0" + string-width: "npm:^5.0.0" + checksum: 8/c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a languageName: node linkType: hard @@ -1589,10 +1589,10 @@ __metadata: version: 7.0.4 resolution: "cliui@npm:7.0.4" dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.0 - wrap-ansi: ^7.0.0 - checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 8/ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f languageName: node linkType: hard @@ -1600,8 +1600,8 @@ __metadata: version: 1.9.3 resolution: "color-convert@npm:1.9.3" dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + color-name: "npm:1.1.3" + checksum: 8/fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 languageName: node linkType: hard @@ -1609,22 +1609,22 @@ __metadata: version: 2.0.1 resolution: "color-convert@npm:2.0.1" dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + color-name: "npm:~1.1.4" + checksum: 8/79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 languageName: node linkType: hard "color-name@npm:1.1.3": version: 1.1.3 resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + checksum: 8/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d languageName: node linkType: hard "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + checksum: 8/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard @@ -1633,14 +1633,14 @@ __metadata: resolution: "color-support@npm:1.1.3" bin: color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + checksum: 8/9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b languageName: node linkType: hard "colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + checksum: 8/0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d languageName: node linkType: hard @@ -1648,50 +1648,50 @@ __metadata: version: 1.0.8 resolution: "combined-stream@npm:1.0.8" dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + delayed-stream: "npm:~1.0.0" + checksum: 8/49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c languageName: node linkType: hard "command-exists@npm:^1.2.8": version: 1.2.9 resolution: "command-exists@npm:1.2.9" - checksum: 729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3 + checksum: 8/729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3 languageName: node linkType: hard "commander@npm:11.0.0": version: 11.0.0 resolution: "commander@npm:11.0.0" - checksum: 6621954e1e1d078b4991c1f5bbd9439ad37aa7768d6ab4842de1dbd4d222c8a27e1b8e62108b3a92988614af45031d5bb2a2aaa92951f4d0c934d1a1ac564bb4 + checksum: 8/6621954e1e1d078b4991c1f5bbd9439ad37aa7768d6ab4842de1dbd4d222c8a27e1b8e62108b3a92988614af45031d5bb2a2aaa92951f4d0c934d1a1ac564bb4 languageName: node linkType: hard "commander@npm:3.0.2": version: 3.0.2 resolution: "commander@npm:3.0.2" - checksum: 6d14ad030d1904428139487ed31febcb04c1604db2b8d9fae711f60ee6718828dc0e11602249e91c8a97b0e721e9c6d53edbc166bad3cde1596851d59a8f824d + checksum: 8/6d14ad030d1904428139487ed31febcb04c1604db2b8d9fae711f60ee6718828dc0e11602249e91c8a97b0e721e9c6d53edbc166bad3cde1596851d59a8f824d languageName: node linkType: hard "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + checksum: 8/902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af languageName: node linkType: hard "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + checksum: 8/8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed languageName: node linkType: hard "cookie@npm:^0.4.1": version: 0.4.2 resolution: "cookie@npm:0.4.2" - checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b + checksum: 8/a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b languageName: node linkType: hard @@ -1700,7 +1700,7 @@ __metadata: resolution: "crc-32@npm:1.2.2" bin: crc32: bin/crc32.njs - checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 + checksum: 8/ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 languageName: node linkType: hard @@ -1708,12 +1708,12 @@ __metadata: version: 1.2.0 resolution: "create-hash@npm:1.2.0" dependencies: - cipher-base: ^1.0.1 - inherits: ^2.0.1 - md5.js: ^1.3.4 - ripemd160: ^2.0.1 - sha.js: ^2.4.0 - checksum: 02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + md5.js: "npm:^1.3.4" + ripemd160: "npm:^2.0.1" + sha.js: "npm:^2.4.0" + checksum: 8/02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 languageName: node linkType: hard @@ -1721,20 +1721,20 @@ __metadata: version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: - cipher-base: ^1.0.3 - create-hash: ^1.1.0 - inherits: ^2.0.1 - ripemd160: ^2.0.0 - safe-buffer: ^5.0.1 - sha.js: ^2.4.8 - checksum: ba12bb2257b585a0396108c72830e85f882ab659c3320c83584b1037f8ab72415095167ced80dc4ce8e446a8ecc4b2acf36d87befe0707d73b26cf9dc77440ed + cipher-base: "npm:^1.0.3" + create-hash: "npm:^1.1.0" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 8/ba12bb2257b585a0396108c72830e85f882ab659c3320c83584b1037f8ab72415095167ced80dc4ce8e446a8ecc4b2acf36d87befe0707d73b26cf9dc77440ed languageName: node linkType: hard "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + checksum: 8/a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff languageName: node linkType: hard @@ -1742,10 +1742,10 @@ __metadata: version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 8/671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 languageName: node linkType: hard @@ -1753,67 +1753,67 @@ __metadata: version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: - ms: 2.1.2 + ms: "npm:2.1.2" peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: 8/3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 languageName: node linkType: hard "decamelize@npm:^4.0.0": version: 4.0.0 resolution: "decamelize@npm:4.0.0" - checksum: b7d09b82652c39eead4d6678bb578e3bebd848add894b76d0f6b395bc45b2d692fb88d977e7cfb93c4ed6c119b05a1347cef261174916c2e75c0a8ca57da1809 + checksum: 8/b7d09b82652c39eead4d6678bb578e3bebd848add894b76d0f6b395bc45b2d692fb88d977e7cfb93c4ed6c119b05a1347cef261174916c2e75c0a8ca57da1809 languageName: node linkType: hard "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + checksum: 8/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 languageName: node linkType: hard "delegates@npm:^1.0.0": version: 1.0.0 resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + checksum: 8/a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd languageName: node linkType: hard "depd@npm:2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + checksum: 8/abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a languageName: node linkType: hard "diff@npm:5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" - checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46 + checksum: 8/f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46 languageName: node linkType: hard "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + checksum: 8/f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d languageName: node linkType: hard "dotenv@npm:^16.3.1": version: 16.3.1 resolution: "dotenv@npm:16.3.1" - checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd + checksum: 8/15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd languageName: node linkType: hard "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + checksum: 8/7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed languageName: node linkType: hard @@ -1821,35 +1821,35 @@ __metadata: version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: - bn.js: ^4.11.9 - brorand: ^1.1.0 - hash.js: ^1.0.0 - hmac-drbg: ^1.0.1 - inherits: ^2.0.4 - minimalistic-assert: ^1.0.1 - minimalistic-crypto-utils: ^1.0.1 - checksum: d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 8/d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 languageName: node linkType: hard "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + checksum: 8/d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 languageName: node linkType: hard "emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + checksum: 8/8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 languageName: node linkType: hard "encode-utf8@npm:^1.0.2": version: 1.0.3 resolution: "encode-utf8@npm:1.0.3" - checksum: 550224bf2a104b1d355458c8a82e9b4ea07f9fc78387bc3a49c151b940ad26473de8dc9e121eefc4e84561cb0b46de1e4cd2bc766f72ee145e9ea9541482817f + checksum: 8/550224bf2a104b1d355458c8a82e9b4ea07f9fc78387bc3a49c151b940ad26473de8dc9e121eefc4e84561cb0b46de1e4cd2bc766f72ee145e9ea9541482817f languageName: node linkType: hard @@ -1857,8 +1857,8 @@ __metadata: version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + iconv-lite: "npm:^0.6.2" + checksum: 8/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f languageName: node linkType: hard @@ -1866,44 +1866,44 @@ __metadata: version: 2.4.1 resolution: "enquirer@npm:2.4.1" dependencies: - ansi-colors: ^4.1.1 - strip-ansi: ^6.0.1 - checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 8/f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 languageName: node linkType: hard "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + checksum: 8/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e languageName: node linkType: hard "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + checksum: 8/8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 languageName: node linkType: hard "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + checksum: 8/a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 languageName: node linkType: hard "escape-string-regexp@npm:4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + checksum: 8/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 languageName: node linkType: hard "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + checksum: 8/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 languageName: node linkType: hard @@ -1911,22 +1911,22 @@ __metadata: version: 0.1.3 resolution: "ethereum-cryptography@npm:0.1.3" dependencies: - "@types/pbkdf2": ^3.0.0 - "@types/secp256k1": ^4.0.1 - blakejs: ^1.1.0 - browserify-aes: ^1.2.0 - bs58check: ^2.1.2 - create-hash: ^1.2.0 - create-hmac: ^1.1.7 - hash.js: ^1.1.7 - keccak: ^3.0.0 - pbkdf2: ^3.0.17 - randombytes: ^2.1.0 - safe-buffer: ^5.1.2 - scrypt-js: ^3.0.0 - secp256k1: ^4.0.1 - setimmediate: ^1.0.5 - checksum: 54bae7a4a96bd81398cdc35c91cfcc74339f71a95ed1b5b694663782e69e8e3afd21357de3b8bac9ff4877fd6f043601e200a7ad9133d94be6fd7d898ee0a449 + "@types/pbkdf2": "npm:^3.0.0" + "@types/secp256k1": "npm:^4.0.1" + blakejs: "npm:^1.1.0" + browserify-aes: "npm:^1.2.0" + bs58check: "npm:^2.1.2" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + hash.js: "npm:^1.1.7" + keccak: "npm:^3.0.0" + pbkdf2: "npm:^3.0.17" + randombytes: "npm:^2.1.0" + safe-buffer: "npm:^5.1.2" + scrypt-js: "npm:^3.0.0" + secp256k1: "npm:^4.0.1" + setimmediate: "npm:^1.0.5" + checksum: 8/54bae7a4a96bd81398cdc35c91cfcc74339f71a95ed1b5b694663782e69e8e3afd21357de3b8bac9ff4877fd6f043601e200a7ad9133d94be6fd7d898ee0a449 languageName: node linkType: hard @@ -1934,11 +1934,11 @@ __metadata: version: 1.2.0 resolution: "ethereum-cryptography@npm:1.2.0" dependencies: - "@noble/hashes": 1.2.0 - "@noble/secp256k1": 1.7.1 - "@scure/bip32": 1.1.5 - "@scure/bip39": 1.1.1 - checksum: 97e8e8253cb9f5a9271bd0201c37609c451c890eb85883b9c564f14743c3d7c673287406c93bf5604307593ee298ad9a03983388b85c11ca61461b9fc1a4f2c7 + "@noble/hashes": "npm:1.2.0" + "@noble/secp256k1": "npm:1.7.1" + "@scure/bip32": "npm:1.1.5" + "@scure/bip39": "npm:1.1.1" + checksum: 8/97e8e8253cb9f5a9271bd0201c37609c451c890eb85883b9c564f14743c3d7c673287406c93bf5604307593ee298ad9a03983388b85c11ca61461b9fc1a4f2c7 languageName: node linkType: hard @@ -1946,9 +1946,9 @@ __metadata: version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" dependencies: - bn.js: ^4.11.8 - ethereumjs-util: ^6.0.0 - checksum: cede2a8ae7c7e04eeaec079c2f925601a25b2ef75cf9230e7c5da63b4ea27883b35447365a47e35c1e831af520973a2252af89022c292c18a09a4607821a366b + bn.js: "npm:^4.11.8" + ethereumjs-util: "npm:^6.0.0" + checksum: 8/cede2a8ae7c7e04eeaec079c2f925601a25b2ef75cf9230e7c5da63b4ea27883b35447365a47e35c1e831af520973a2252af89022c292c18a09a4607821a366b languageName: node linkType: hard @@ -1956,14 +1956,14 @@ __metadata: version: 6.2.1 resolution: "ethereumjs-util@npm:6.2.1" dependencies: - "@types/bn.js": ^4.11.3 - bn.js: ^4.11.0 - create-hash: ^1.1.2 - elliptic: ^6.5.2 - ethereum-cryptography: ^0.1.3 - ethjs-util: 0.1.6 - rlp: ^2.2.3 - checksum: e3cb4a2c034a2529281fdfc21a2126fe032fdc3038863f5720352daa65ddcc50fc8c67dbedf381a882dc3802e05d979287126d7ecf781504bde1fd8218693bde + "@types/bn.js": "npm:^4.11.3" + bn.js: "npm:^4.11.0" + create-hash: "npm:^1.1.2" + elliptic: "npm:^6.5.2" + ethereum-cryptography: "npm:^0.1.3" + ethjs-util: "npm:0.1.6" + rlp: "npm:^2.2.3" + checksum: 8/e3cb4a2c034a2529281fdfc21a2126fe032fdc3038863f5720352daa65ddcc50fc8c67dbedf381a882dc3802e05d979287126d7ecf781504bde1fd8218693bde languageName: node linkType: hard @@ -1971,37 +1971,37 @@ __metadata: version: 5.7.2 resolution: "ethers@npm:5.7.2" dependencies: - "@ethersproject/abi": 5.7.0 - "@ethersproject/abstract-provider": 5.7.0 - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/base64": 5.7.0 - "@ethersproject/basex": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/contracts": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/hdnode": 5.7.0 - "@ethersproject/json-wallets": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/networks": 5.7.1 - "@ethersproject/pbkdf2": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/providers": 5.7.2 - "@ethersproject/random": 5.7.0 - "@ethersproject/rlp": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/signing-key": 5.7.0 - "@ethersproject/solidity": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@ethersproject/transactions": 5.7.0 - "@ethersproject/units": 5.7.0 - "@ethersproject/wallet": 5.7.0 - "@ethersproject/web": 5.7.1 - "@ethersproject/wordlists": 5.7.0 - checksum: b7c08cf3e257185a7946117dbbf764433b7ba0e77c27298dec6088b3bc871aff711462b0621930c56880ff0a7ceb8b1d3a361ffa259f93377b48e34107f62553 + "@ethersproject/abi": "npm:5.7.0" + "@ethersproject/abstract-provider": "npm:5.7.0" + "@ethersproject/abstract-signer": "npm:5.7.0" + "@ethersproject/address": "npm:5.7.0" + "@ethersproject/base64": "npm:5.7.0" + "@ethersproject/basex": "npm:5.7.0" + "@ethersproject/bignumber": "npm:5.7.0" + "@ethersproject/bytes": "npm:5.7.0" + "@ethersproject/constants": "npm:5.7.0" + "@ethersproject/contracts": "npm:5.7.0" + "@ethersproject/hash": "npm:5.7.0" + "@ethersproject/hdnode": "npm:5.7.0" + "@ethersproject/json-wallets": "npm:5.7.0" + "@ethersproject/keccak256": "npm:5.7.0" + "@ethersproject/logger": "npm:5.7.0" + "@ethersproject/networks": "npm:5.7.1" + "@ethersproject/pbkdf2": "npm:5.7.0" + "@ethersproject/properties": "npm:5.7.0" + "@ethersproject/providers": "npm:5.7.2" + "@ethersproject/random": "npm:5.7.0" + "@ethersproject/rlp": "npm:5.7.0" + "@ethersproject/sha2": "npm:5.7.0" + "@ethersproject/signing-key": "npm:5.7.0" + "@ethersproject/solidity": "npm:5.7.0" + "@ethersproject/strings": "npm:5.7.0" + "@ethersproject/transactions": "npm:5.7.0" + "@ethersproject/units": "npm:5.7.0" + "@ethersproject/wallet": "npm:5.7.0" + "@ethersproject/web": "npm:5.7.1" + "@ethersproject/wordlists": "npm:5.7.0" + checksum: 8/b7c08cf3e257185a7946117dbbf764433b7ba0e77c27298dec6088b3bc871aff711462b0621930c56880ff0a7ceb8b1d3a361ffa259f93377b48e34107f62553 languageName: node linkType: hard @@ -2009,16 +2009,16 @@ __metadata: version: 0.1.6 resolution: "ethjs-util@npm:0.1.6" dependencies: - is-hex-prefixed: 1.0.0 - strip-hex-prefix: 1.0.0 - checksum: 1f42959e78ec6f49889c49c8a98639e06f52a15966387dd39faf2930db48663d026efb7db2702dcffe7f2a99c4a0144b7ce784efdbf733f4077aae95de76d65f + is-hex-prefixed: "npm:1.0.0" + strip-hex-prefix: "npm:1.0.0" + checksum: 8/1f42959e78ec6f49889c49c8a98639e06f52a15966387dd39faf2930db48663d026efb7db2702dcffe7f2a99c4a0144b7ce784efdbf733f4077aae95de76d65f languageName: node linkType: hard "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" - checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 + checksum: 8/543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 languageName: node linkType: hard @@ -2026,10 +2026,10 @@ __metadata: version: 1.0.3 resolution: "evp_bytestokey@npm:1.0.3" dependencies: - md5.js: ^1.3.4 - node-gyp: latest - safe-buffer: ^5.1.1 - checksum: ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 + md5.js: "npm:^1.3.4" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.1" + checksum: 8/ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 languageName: node linkType: hard @@ -2037,32 +2037,32 @@ __metadata: version: 7.2.0 resolution: "execa@npm:7.2.0" dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.1 - human-signals: ^4.3.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^3.0.7 - strip-final-newline: ^3.0.0 - checksum: 14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.1" + human-signals: "npm:^4.3.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^3.0.7" + strip-final-newline: "npm:^3.0.0" + checksum: 8/14fd17ba0ca8c87b277584d93b1d9fc24f2a65e5152b31d5eb159a3b814854283eaae5f51efa9525e304447e2f757c691877f7adff8fde5746aae67eb1edd1cc languageName: node linkType: hard "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + checksum: 8/3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 languageName: node linkType: hard @@ -2070,9 +2070,9 @@ __metadata: version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 8/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 languageName: node linkType: hard @@ -2080,8 +2080,8 @@ __metadata: version: 2.1.0 resolution: "find-up@npm:2.1.0" dependencies: - locate-path: ^2.0.0 - checksum: 43284fe4da09f89011f08e3c32cd38401e786b19226ea440b75386c1b12a4cb738c94969808d53a84f564ede22f732c8409e3cfc3f7fb5b5c32378ad0bbf28bd + locate-path: "npm:^2.0.0" + checksum: 8/43284fe4da09f89011f08e3c32cd38401e786b19226ea440b75386c1b12a4cb738c94969808d53a84f564ede22f732c8409e3cfc3f7fb5b5c32378ad0bbf28bd languageName: node linkType: hard @@ -2090,7 +2090,7 @@ __metadata: resolution: "flat@npm:5.0.2" bin: flat: cli.js - checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + checksum: 8/12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d languageName: node linkType: hard @@ -2098,8 +2098,8 @@ __metadata: version: 0.1.0 resolution: "fmix@npm:0.1.0" dependencies: - imul: ^1.0.0 - checksum: c465344d4f169eaf10d45c33949a1e7a633f09dba2ac7063ce8ae8be743df5979d708f7f24900163589f047f5194ac5fc2476177ce31175e8805adfa7b8fb7a4 + imul: "npm:^1.0.0" + checksum: 8/c465344d4f169eaf10d45c33949a1e7a633f09dba2ac7063ce8ae8be743df5979d708f7f24900163589f047f5194ac5fc2476177ce31175e8805adfa7b8fb7a4 languageName: node linkType: hard @@ -2109,7 +2109,7 @@ __metadata: peerDependenciesMeta: debug: optional: true - checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 + checksum: 8/a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 languageName: node linkType: hard @@ -2117,9 +2117,9 @@ __metadata: version: 3.1.1 resolution: "foreground-child@npm:3.1.1" dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 8/139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 languageName: node linkType: hard @@ -2127,24 +2127,24 @@ __metadata: version: 4.0.0 resolution: "form-data@npm:4.0.0" dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 8/01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c languageName: node linkType: hard "fp-ts@npm:1.19.3": version: 1.19.3 resolution: "fp-ts@npm:1.19.3" - checksum: eb0d4766ad561e9c5c01bfdd3d0ae589af135556921c733d26cf5289aad9f400110defdd93e6ac1d71f626697bb44d9d95ed2879c53dfd868f7cac3cf5c5553c + checksum: 8/eb0d4766ad561e9c5c01bfdd3d0ae589af135556921c733d26cf5289aad9f400110defdd93e6ac1d71f626697bb44d9d95ed2879c53dfd868f7cac3cf5c5553c languageName: node linkType: hard "fp-ts@npm:^1.0.0": version: 1.19.5 resolution: "fp-ts@npm:1.19.5" - checksum: 67d2d9c3855d211ca2592b1ef805f98b618157e7681791a776d9d0f7f3e52fcca2122ebf5bc215908c9099fad69756d40e37210cf46cb4075dae1b61efe69e40 + checksum: 8/67d2d9c3855d211ca2592b1ef805f98b618157e7681791a776d9d0f7f3e52fcca2122ebf5bc215908c9099fad69756d40e37210cf46cb4075dae1b61efe69e40 languageName: node linkType: hard @@ -2152,12 +2152,12 @@ __metadata: version: 0.30.0 resolution: "fs-extra@npm:0.30.0" dependencies: - graceful-fs: ^4.1.2 - jsonfile: ^2.1.0 - klaw: ^1.0.0 - path-is-absolute: ^1.0.0 - rimraf: ^2.2.8 - checksum: 6edfd65fc813baa27f1603778c0f5ec11f8c5006a20b920437813ee2023eba18aeec8bef1c89b2e6c84f9fc90fdc7c916f4a700466c8c69d22a35d018f2570f0 + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^2.1.0" + klaw: "npm:^1.0.0" + path-is-absolute: "npm:^1.0.0" + rimraf: "npm:^2.2.8" + checksum: 8/6edfd65fc813baa27f1603778c0f5ec11f8c5006a20b920437813ee2023eba18aeec8bef1c89b2e6c84f9fc90fdc7c916f4a700466c8c69d22a35d018f2570f0 languageName: node linkType: hard @@ -2165,10 +2165,10 @@ __metadata: version: 10.1.0 resolution: "fs-extra@npm:10.1.0" dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 8/dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 languageName: node linkType: hard @@ -2176,10 +2176,10 @@ __metadata: version: 7.0.1 resolution: "fs-extra@npm:7.0.1" dependencies: - graceful-fs: ^4.1.2 - jsonfile: ^4.0.0 - universalify: ^0.1.0 - checksum: 141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 8/141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf languageName: node linkType: hard @@ -2187,8 +2187,8 @@ __metadata: version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + minipass: "npm:^3.0.0" + checksum: 8/1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 languageName: node linkType: hard @@ -2196,15 +2196,15 @@ __metadata: version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + minipass: "npm:^7.0.3" + checksum: 8/8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 languageName: node linkType: hard "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + checksum: 8/99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 languageName: node linkType: hard @@ -2212,17 +2212,17 @@ __metadata: version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + node-gyp: "npm:latest" + checksum: 8/11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@~2.3.2#~builtin": +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: - node-gyp: latest + node-gyp: "npm:latest" conditions: os=darwin languageName: node linkType: hard @@ -2230,14 +2230,14 @@ __metadata: "function-bind@npm:^1.1.1": version: 1.1.2 resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + checksum: 8/2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 languageName: node linkType: hard "functional-red-black-tree@npm:^1.0.1": version: 1.0.1 resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f + checksum: 8/ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f languageName: node linkType: hard @@ -2245,22 +2245,22 @@ __metadata: version: 4.0.4 resolution: "gauge@npm:4.0.4" dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + aproba: "npm:^1.0.3 || ^2.0.0" + color-support: "npm:^1.1.3" + console-control-strings: "npm:^1.1.0" + has-unicode: "npm:^2.0.1" + signal-exit: "npm:^3.0.7" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wide-align: "npm:^1.1.5" + checksum: 8/788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d languageName: node linkType: hard "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + checksum: 8/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 languageName: node linkType: hard @@ -2268,18 +2268,18 @@ __metadata: version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + function-bind: "npm:^1.1.1" + has: "npm:^1.0.3" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + checksum: 8/5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f languageName: node linkType: hard "get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + checksum: 8/e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad languageName: node linkType: hard @@ -2287,8 +2287,8 @@ __metadata: version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + is-glob: "npm:^4.0.1" + checksum: 8/f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e languageName: node linkType: hard @@ -2296,13 +2296,13 @@ __metadata: version: 7.2.0 resolution: "glob@npm:7.2.0" dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.0.4 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.0.4" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 8/78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 languageName: node linkType: hard @@ -2310,14 +2310,14 @@ __metadata: version: 10.3.10 resolution: "glob@npm:10.3.10" dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^2.3.5" + minimatch: "npm:^9.0.1" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry: "npm:^1.10.1" bin: glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + checksum: 8/4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 languageName: node linkType: hard @@ -2325,20 +2325,20 @@ __metadata: version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 8/29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 languageName: node linkType: hard "graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + checksum: 8/ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard @@ -2346,31 +2346,31 @@ __metadata: version: 0.11.29 resolution: "hardhat-deploy@npm:0.11.29" dependencies: - "@ethersproject/abi": ^5.7.0 - "@ethersproject/abstract-signer": ^5.7.0 - "@ethersproject/address": ^5.7.0 - "@ethersproject/bignumber": ^5.7.0 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/constants": ^5.7.0 - "@ethersproject/contracts": ^5.7.0 - "@ethersproject/providers": ^5.7.2 - "@ethersproject/solidity": ^5.7.0 - "@ethersproject/transactions": ^5.7.0 - "@ethersproject/wallet": ^5.7.0 - "@types/qs": ^6.9.7 - axios: ^0.21.1 - chalk: ^4.1.2 - chokidar: ^3.5.2 - debug: ^4.3.2 - enquirer: ^2.3.6 - ethers: ^5.5.3 - form-data: ^4.0.0 - fs-extra: ^10.0.0 - match-all: ^1.2.6 - murmur-128: ^0.2.1 - qs: ^6.9.4 - zksync-web3: ^0.14.3 - checksum: 4a963e202271189566921fb7ab73bde4ed45204fddeeacdc9993883772b7349b513ba3dd17dee4bc178581724ab20d537f0b69c7ddf227710e7f070ec65c70d2 + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/contracts": "npm:^5.7.0" + "@ethersproject/providers": "npm:^5.7.2" + "@ethersproject/solidity": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wallet": "npm:^5.7.0" + "@types/qs": "npm:^6.9.7" + axios: "npm:^0.21.1" + chalk: "npm:^4.1.2" + chokidar: "npm:^3.5.2" + debug: "npm:^4.3.2" + enquirer: "npm:^2.3.6" + ethers: "npm:^5.5.3" + form-data: "npm:^4.0.0" + fs-extra: "npm:^10.0.0" + match-all: "npm:^1.2.6" + murmur-128: "npm:^0.2.1" + qs: "npm:^6.9.4" + zksync-web3: "npm:^0.14.3" + checksum: 8/4a963e202271189566921fb7ab73bde4ed45204fddeeacdc9993883772b7349b513ba3dd17dee4bc178581724ab20d537f0b69c7ddf227710e7f070ec65c70d2 languageName: node linkType: hard @@ -2378,54 +2378,54 @@ __metadata: version: 2.18.1 resolution: "hardhat@npm:2.18.1" dependencies: - "@ethersproject/abi": ^5.1.2 - "@metamask/eth-sig-util": ^4.0.0 - "@nomicfoundation/ethereumjs-block": 5.0.2 - "@nomicfoundation/ethereumjs-blockchain": 7.0.2 - "@nomicfoundation/ethereumjs-common": 4.0.2 - "@nomicfoundation/ethereumjs-evm": 2.0.2 - "@nomicfoundation/ethereumjs-rlp": 5.0.2 - "@nomicfoundation/ethereumjs-statemanager": 2.0.2 - "@nomicfoundation/ethereumjs-trie": 6.0.2 - "@nomicfoundation/ethereumjs-tx": 5.0.2 - "@nomicfoundation/ethereumjs-util": 9.0.2 - "@nomicfoundation/ethereumjs-vm": 7.0.2 - "@nomicfoundation/solidity-analyzer": ^0.1.0 - "@sentry/node": ^5.18.1 - "@types/bn.js": ^5.1.0 - "@types/lru-cache": ^5.1.0 - adm-zip: ^0.4.16 - aggregate-error: ^3.0.0 - ansi-escapes: ^4.3.0 - chalk: ^2.4.2 - chokidar: ^3.4.0 - ci-info: ^2.0.0 - debug: ^4.1.1 - enquirer: ^2.3.0 - env-paths: ^2.2.0 - ethereum-cryptography: ^1.0.3 - ethereumjs-abi: ^0.6.8 - find-up: ^2.1.0 - fp-ts: 1.19.3 - fs-extra: ^7.0.1 - glob: 7.2.0 - immutable: ^4.0.0-rc.12 - io-ts: 1.10.4 - keccak: ^3.0.2 - lodash: ^4.17.11 - mnemonist: ^0.38.0 - mocha: ^10.0.0 - p-map: ^4.0.0 - raw-body: ^2.4.1 - resolve: 1.17.0 - semver: ^6.3.0 - solc: 0.7.3 - source-map-support: ^0.5.13 - stacktrace-parser: ^0.1.10 - tsort: 0.0.1 - undici: ^5.14.0 - uuid: ^8.3.2 - ws: ^7.4.6 + "@ethersproject/abi": "npm:^5.1.2" + "@metamask/eth-sig-util": "npm:^4.0.0" + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-evm": "npm:2.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + "@nomicfoundation/ethereumjs-vm": "npm:7.0.2" + "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" + "@sentry/node": "npm:^5.18.1" + "@types/bn.js": "npm:^5.1.0" + "@types/lru-cache": "npm:^5.1.0" + adm-zip: "npm:^0.4.16" + aggregate-error: "npm:^3.0.0" + ansi-escapes: "npm:^4.3.0" + chalk: "npm:^2.4.2" + chokidar: "npm:^3.4.0" + ci-info: "npm:^2.0.0" + debug: "npm:^4.1.1" + enquirer: "npm:^2.3.0" + env-paths: "npm:^2.2.0" + ethereum-cryptography: "npm:^1.0.3" + ethereumjs-abi: "npm:^0.6.8" + find-up: "npm:^2.1.0" + fp-ts: "npm:1.19.3" + fs-extra: "npm:^7.0.1" + glob: "npm:7.2.0" + immutable: "npm:^4.0.0-rc.12" + io-ts: "npm:1.10.4" + keccak: "npm:^3.0.2" + lodash: "npm:^4.17.11" + mnemonist: "npm:^0.38.0" + mocha: "npm:^10.0.0" + p-map: "npm:^4.0.0" + raw-body: "npm:^2.4.1" + resolve: "npm:1.17.0" + semver: "npm:^6.3.0" + solc: "npm:0.7.3" + source-map-support: "npm:^0.5.13" + stacktrace-parser: "npm:^0.1.10" + tsort: "npm:0.0.1" + undici: "npm:^5.14.0" + uuid: "npm:^8.3.2" + ws: "npm:^7.4.6" peerDependencies: ts-node: "*" typescript: "*" @@ -2436,49 +2436,49 @@ __metadata: optional: true bin: hardhat: internal/cli/bootstrap.js - checksum: 34a6b4f27e4412e8878c8612a36c92ae79acea5168514bddb7eb4654be5ea92e19f4b2618e8e789361c8f54eaf10ebe6469042c22bbaae66254e5e3a5a63c3b1 + checksum: 8/34a6b4f27e4412e8878c8612a36c92ae79acea5168514bddb7eb4654be5ea92e19f4b2618e8e789361c8f54eaf10ebe6469042c22bbaae66254e5e3a5a63c3b1 languageName: node linkType: hard "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + checksum: 8/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b languageName: node linkType: hard "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + checksum: 8/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad languageName: node linkType: hard "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + checksum: 8/febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e languageName: node linkType: hard "has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + checksum: 8/a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 languageName: node linkType: hard "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + checksum: 8/1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 languageName: node linkType: hard "has@npm:^1.0.3": version: 1.0.4 resolution: "has@npm:1.0.4" - checksum: 8a11ba062e0627c9578a1d08285401e39f1d071a9692ddf793199070edb5648b21c774dd733e2a181edd635bf6862731885f476f4ccf67c998d7a5ff7cef2550 + checksum: 8/8a11ba062e0627c9578a1d08285401e39f1d071a9692ddf793199070edb5648b21c774dd733e2a181edd635bf6862731885f476f4ccf67c998d7a5ff7cef2550 languageName: node linkType: hard @@ -2486,10 +2486,10 @@ __metadata: version: 3.1.0 resolution: "hash-base@npm:3.1.0" dependencies: - inherits: ^2.0.4 - readable-stream: ^3.6.0 - safe-buffer: ^5.2.0 - checksum: 26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + safe-buffer: "npm:^5.2.0" + checksum: 8/26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc languageName: node linkType: hard @@ -2497,9 +2497,9 @@ __metadata: version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: - inherits: ^2.0.3 - minimalistic-assert: ^1.0.1 - checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f + inherits: "npm:^2.0.3" + minimalistic-assert: "npm:^1.0.1" + checksum: 8/e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f languageName: node linkType: hard @@ -2508,7 +2508,7 @@ __metadata: resolution: "he@npm:1.2.0" bin: he: bin/he - checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + checksum: 8/3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 languageName: node linkType: hard @@ -2516,17 +2516,17 @@ __metadata: version: 1.0.1 resolution: "hmac-drbg@npm:1.0.1" dependencies: - hash.js: ^1.0.3 - minimalistic-assert: ^1.0.0 - minimalistic-crypto-utils: ^1.0.1 - checksum: bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 + hash.js: "npm:^1.0.3" + minimalistic-assert: "npm:^1.0.0" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 8/bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 languageName: node linkType: hard "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + checksum: 8/83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard @@ -2534,12 +2534,12 @@ __metadata: version: 2.0.0 resolution: "http-errors@npm:2.0.0" dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 8/9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 languageName: node linkType: hard @@ -2547,10 +2547,10 @@ __metadata: version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + "@tootallnate/once": "npm:2" + agent-base: "npm:6" + debug: "npm:4" + checksum: 8/e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 languageName: node linkType: hard @@ -2558,16 +2558,16 @@ __metadata: version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + agent-base: "npm:6" + debug: "npm:4" + checksum: 8/571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 languageName: node linkType: hard "human-signals@npm:^4.3.0": version: 4.3.1 resolution: "human-signals@npm:4.3.1" - checksum: 6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 + checksum: 8/6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 languageName: node linkType: hard @@ -2575,8 +2575,8 @@ __metadata: version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + ms: "npm:^2.0.0" + checksum: 8/9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 languageName: node linkType: hard @@ -2585,7 +2585,7 @@ __metadata: resolution: "husky@npm:8.0.3" bin: husky: lib/bin.js - checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 + checksum: 8/837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 languageName: node linkType: hard @@ -2593,8 +2593,8 @@ __metadata: version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 8/bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 languageName: node linkType: hard @@ -2602,43 +2602,43 @@ __metadata: version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 8/3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf languageName: node linkType: hard "ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + checksum: 8/5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e languageName: node linkType: hard "immutable@npm:^4.0.0-rc.12": version: 4.3.4 resolution: "immutable@npm:4.3.4" - checksum: de3edd964c394bab83432429d3fb0b4816b42f56050f2ca913ba520bd3068ec3e504230d0800332d3abc478616e8f55d3787424a90d0952e6aba864524f1afc3 + checksum: 8/de3edd964c394bab83432429d3fb0b4816b42f56050f2ca913ba520bd3068ec3e504230d0800332d3abc478616e8f55d3787424a90d0952e6aba864524f1afc3 languageName: node linkType: hard "imul@npm:^1.0.0": version: 1.0.1 resolution: "imul@npm:1.0.1" - checksum: 6c2af3d5f09e2135e14d565a2c108412b825b221eb2c881f9130467f2adccf7ae201773ae8bcf1be169e2d090567a1fdfa9cf20d3b7da7b9cecb95b920ff3e52 + checksum: 8/6c2af3d5f09e2135e14d565a2c108412b825b221eb2c881f9130467f2adccf7ae201773ae8bcf1be169e2d090567a1fdfa9cf20d3b7da7b9cecb95b920ff3e52 languageName: node linkType: hard "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + checksum: 8/7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 languageName: node linkType: hard "indent-string@npm:^4.0.0": version: 4.0.0 resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + checksum: 8/824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 languageName: node linkType: hard @@ -2646,16 +2646,16 @@ __metadata: version: 1.0.6 resolution: "inflight@npm:1.0.6" dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 8/f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd languageName: node linkType: hard "inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + checksum: 8/4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard @@ -2663,15 +2663,15 @@ __metadata: version: 1.10.4 resolution: "io-ts@npm:1.10.4" dependencies: - fp-ts: ^1.0.0 - checksum: 619134006778f7ca42693716ade7fc1a383079e7848bbeabc67a0e4ac9139cda6b2a88a052d539ab7d554033ee2ffe4dab5cb96b958c83fee2dff73d23f03e88 + fp-ts: "npm:^1.0.0" + checksum: 8/619134006778f7ca42693716ade7fc1a383079e7848bbeabc67a0e4ac9139cda6b2a88a052d539ab7d554033ee2ffe4dab5cb96b958c83fee2dff73d23f03e88 languageName: node linkType: hard "ip@npm:^2.0.0": version: 2.0.1 resolution: "ip@npm:2.0.1" - checksum: d765c9fd212b8a99023a4cde6a558a054c298d640fec1020567494d257afd78ca77e37126b1a3ef0e053646ced79a816bf50621d38d5e768cdde0431fa3b0d35 + checksum: 8/d765c9fd212b8a99023a4cde6a558a054c298d640fec1020567494d257afd78ca77e37126b1a3ef0e053646ced79a816bf50621d38d5e768cdde0431fa3b0d35 languageName: node linkType: hard @@ -2679,36 +2679,36 @@ __metadata: version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + binary-extensions: "npm:^2.0.0" + checksum: 8/84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c languageName: node linkType: hard "is-buffer@npm:^2.0.5": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" - checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + checksum: 8/764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 languageName: node linkType: hard "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + checksum: 8/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 languageName: node linkType: hard "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + checksum: 8/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 languageName: node linkType: hard "is-fullwidth-code-point@npm:^4.0.0": version: 4.0.0 resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + checksum: 8/8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d languageName: node linkType: hard @@ -2716,57 +2716,57 @@ __metadata: version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + is-extglob: "npm:^2.1.1" + checksum: 8/d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 languageName: node linkType: hard "is-hex-prefixed@npm:1.0.0": version: 1.0.0 resolution: "is-hex-prefixed@npm:1.0.0" - checksum: 5ac58e6e528fb029cc43140f6eeb380fad23d0041cc23154b87f7c9a1b728bcf05909974e47248fd0b7fcc11ba33cf7e58d64804883056fabd23e2b898be41de + checksum: 8/5ac58e6e528fb029cc43140f6eeb380fad23d0041cc23154b87f7c9a1b728bcf05909974e47248fd0b7fcc11ba33cf7e58d64804883056fabd23e2b898be41de languageName: node linkType: hard "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + checksum: 8/93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 languageName: node linkType: hard "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + checksum: 8/456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a languageName: node linkType: hard "is-plain-obj@npm:^2.1.0": version: 2.1.0 resolution: "is-plain-obj@npm:2.1.0" - checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa + checksum: 8/cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa languageName: node linkType: hard "is-stream@npm:^3.0.0": version: 3.0.0 resolution: "is-stream@npm:3.0.0" - checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + checksum: 8/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 languageName: node linkType: hard "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + checksum: 8/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 languageName: node linkType: hard "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + checksum: 8/26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 languageName: node linkType: hard @@ -2774,26 +2774,26 @@ __metadata: version: 2.3.6 resolution: "jackspeak@npm:2.3.6" dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + checksum: 8/57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 languageName: node linkType: hard "js-sdsl@npm:^4.1.4": version: 4.4.2 resolution: "js-sdsl@npm:4.4.2" - checksum: ba705adc1788bf3c6f6c8e5077824f2bb4f0acab5a984420ce5cc492c7fff3daddc26335ad2c9a67d4f5e3241ec790f9e5b72a625adcf20cf321d2fd85e62b8b + checksum: 8/ba705adc1788bf3c6f6c8e5077824f2bb4f0acab5a984420ce5cc492c7fff3daddc26335ad2c9a67d4f5e3241ec790f9e5b72a625adcf20cf321d2fd85e62b8b languageName: node linkType: hard "js-sha3@npm:0.8.0": version: 0.8.0 resolution: "js-sha3@npm:0.8.0" - checksum: 75df77c1fc266973f06cce8309ce010e9e9f07ec35ab12022ed29b7f0d9c8757f5a73e1b35aa24840dced0dea7059085aa143d817aea9e188e2a80d569d9adce + checksum: 8/75df77c1fc266973f06cce8309ce010e9e9f07ec35ab12022ed29b7f0d9c8757f5a73e1b35aa24840dced0dea7059085aa143d817aea9e188e2a80d569d9adce languageName: node linkType: hard @@ -2801,10 +2801,10 @@ __metadata: version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: - argparse: ^2.0.1 + argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + checksum: 8/c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a languageName: node linkType: hard @@ -2812,11 +2812,11 @@ __metadata: version: 2.4.0 resolution: "jsonfile@npm:2.4.0" dependencies: - graceful-fs: ^4.1.6 + graceful-fs: "npm:^4.1.6" dependenciesMeta: graceful-fs: optional: true - checksum: f5064aabbc9e35530dc471d8b203ae1f40dbe949ddde4391c6f6a6d310619a15f0efdae5587df594d1d70c555193aaeee9d2ed4aec9ffd5767bd5e4e62d49c3d + checksum: 8/f5064aabbc9e35530dc471d8b203ae1f40dbe949ddde4391c6f6a6d310619a15f0efdae5587df594d1d70c555193aaeee9d2ed4aec9ffd5767bd5e4e62d49c3d languageName: node linkType: hard @@ -2824,11 +2824,11 @@ __metadata: version: 4.0.0 resolution: "jsonfile@npm:4.0.0" dependencies: - graceful-fs: ^4.1.6 + graceful-fs: "npm:^4.1.6" dependenciesMeta: graceful-fs: optional: true - checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e + checksum: 8/6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e languageName: node linkType: hard @@ -2836,12 +2836,12 @@ __metadata: version: 6.1.0 resolution: "jsonfile@npm:6.1.0" dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" dependenciesMeta: graceful-fs: optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + checksum: 8/7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 languageName: node linkType: hard @@ -2849,11 +2849,11 @@ __metadata: version: 3.0.4 resolution: "keccak@npm:3.0.4" dependencies: - node-addon-api: ^2.0.0 - node-gyp: latest - node-gyp-build: ^4.2.0 - readable-stream: ^3.6.0 - checksum: 2bf27b97b2f24225b1b44027de62be547f5c7326d87d249605665abd0c8c599d774671c35504c62c9b922cae02758504c6f76a73a84234d23af8a2211afaaa11 + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + readable-stream: "npm:^3.6.0" + checksum: 8/2bf27b97b2f24225b1b44027de62be547f5c7326d87d249605665abd0c8c599d774671c35504c62c9b922cae02758504c6f76a73a84234d23af8a2211afaaa11 languageName: node linkType: hard @@ -2861,18 +2861,18 @@ __metadata: version: 1.3.1 resolution: "klaw@npm:1.3.1" dependencies: - graceful-fs: ^4.1.9 + graceful-fs: "npm:^4.1.9" dependenciesMeta: graceful-fs: optional: true - checksum: 8f69e4797c26e7c3f2426bfa85f38a3da3c2cb1b4c6bd850d2377aed440d41ce9d806f2885c2e2e224372c56af4b1d43b8a499adecf9a05e7373dc6b8b7c52e4 + checksum: 8/8f69e4797c26e7c3f2426bfa85f38a3da3c2cb1b4c6bd850d2377aed440d41ce9d806f2885c2e2e224372c56af4b1d43b8a499adecf9a05e7373dc6b8b7c52e4 languageName: node linkType: hard "level-supports@npm:^4.0.0": version: 4.0.1 resolution: "level-supports@npm:4.0.1" - checksum: d4552b42bb8cdeada07b0f6356c7a90fefe76279147331f291aceae26e3e56d5f927b09ce921647c0230bfe03ddfbdcef332be921e5c2194421ae2bfa3cf6368 + checksum: 8/d4552b42bb8cdeada07b0f6356c7a90fefe76279147331f291aceae26e3e56d5f927b09ce921647c0230bfe03ddfbdcef332be921e5c2194421ae2bfa3cf6368 languageName: node linkType: hard @@ -2880,9 +2880,9 @@ __metadata: version: 1.0.1 resolution: "level-transcoder@npm:1.0.1" dependencies: - buffer: ^6.0.3 - module-error: ^1.0.1 - checksum: 304f08d802faf3491a533b6d87ad8be3cabfd27f2713bbe9d4c633bf50fcb9460eab5a6776bf015e101ead7ba1c1853e05e7f341112f17a9d0cb37ee5a421a25 + buffer: "npm:^6.0.3" + module-error: "npm:^1.0.1" + checksum: 8/304f08d802faf3491a533b6d87ad8be3cabfd27f2713bbe9d4c633bf50fcb9460eab5a6776bf015e101ead7ba1c1853e05e7f341112f17a9d0cb37ee5a421a25 languageName: node linkType: hard @@ -2890,16 +2890,16 @@ __metadata: version: 8.0.0 resolution: "level@npm:8.0.0" dependencies: - browser-level: ^1.0.1 - classic-level: ^1.2.0 - checksum: 13eb25bd71bfdca6cd714d1233adf9da97de9a8a4bf9f28d62a390b5c96d0250abaf983eb90eb8c4e89c7a985bb330750683d106f12670e5ea8fba1d7e608a1f + browser-level: "npm:^1.0.1" + classic-level: "npm:^1.2.0" + checksum: 8/13eb25bd71bfdca6cd714d1233adf9da97de9a8a4bf9f28d62a390b5c96d0250abaf983eb90eb8c4e89c7a985bb330750683d106f12670e5ea8fba1d7e608a1f languageName: node linkType: hard "lilconfig@npm:2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" - checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 + checksum: 8/8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 languageName: node linkType: hard @@ -2907,19 +2907,19 @@ __metadata: version: 14.0.1 resolution: "lint-staged@npm:14.0.1" dependencies: - chalk: 5.3.0 - commander: 11.0.0 - debug: 4.3.4 - execa: 7.2.0 - lilconfig: 2.1.0 - listr2: 6.6.1 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.1 + chalk: "npm:5.3.0" + commander: "npm:11.0.0" + debug: "npm:4.3.4" + execa: "npm:7.2.0" + lilconfig: "npm:2.1.0" + listr2: "npm:6.6.1" + micromatch: "npm:4.0.5" + pidtree: "npm:0.6.0" + string-argv: "npm:0.3.2" + yaml: "npm:2.3.1" bin: lint-staged: bin/lint-staged.js - checksum: 8c5d740cb3c90fab2d970fa6bbffe5ddf35ec66ed374a52caf3a3cf83d8f4d5fd01a949994822bce5ea18c0b8dc8fa4ce087ef886a8c11db674139a063cdfe4f + checksum: 8/8c5d740cb3c90fab2d970fa6bbffe5ddf35ec66ed374a52caf3a3cf83d8f4d5fd01a949994822bce5ea18c0b8dc8fa4ce087ef886a8c11db674139a063cdfe4f languageName: node linkType: hard @@ -2927,18 +2927,18 @@ __metadata: version: 6.6.1 resolution: "listr2@npm:6.6.1" dependencies: - cli-truncate: ^3.1.0 - colorette: ^2.0.20 - eventemitter3: ^5.0.1 - log-update: ^5.0.1 - rfdc: ^1.3.0 - wrap-ansi: ^8.1.0 + cli-truncate: "npm:^3.1.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^5.0.1" + rfdc: "npm:^1.3.0" + wrap-ansi: "npm:^8.1.0" peerDependencies: enquirer: ">= 2.3.0 < 3" peerDependenciesMeta: enquirer: optional: true - checksum: 99600e8a51f838f7208bce7e16d6b3d91d361f13881e6aa91d0b561a9a093ddcf63b7bc2a7b47aec7fdbff9d0e8c9f68cb66e6dfe2d857e5b1df8ab045c26ce8 + checksum: 8/99600e8a51f838f7208bce7e16d6b3d91d361f13881e6aa91d0b561a9a093ddcf63b7bc2a7b47aec7fdbff9d0e8c9f68cb66e6dfe2d857e5b1df8ab045c26ce8 languageName: node linkType: hard @@ -2946,9 +2946,9 @@ __metadata: version: 2.0.0 resolution: "locate-path@npm:2.0.0" dependencies: - p-locate: ^2.0.0 - path-exists: ^3.0.0 - checksum: 02d581edbbbb0fa292e28d96b7de36b5b62c2fa8b5a7e82638ebb33afa74284acf022d3b1e9ae10e3ffb7658fbc49163fcd5e76e7d1baaa7801c3e05a81da755 + p-locate: "npm:^2.0.0" + path-exists: "npm:^3.0.0" + checksum: 8/02d581edbbbb0fa292e28d96b7de36b5b62c2fa8b5a7e82638ebb33afa74284acf022d3b1e9ae10e3ffb7658fbc49163fcd5e76e7d1baaa7801c3e05a81da755 languageName: node linkType: hard @@ -2956,15 +2956,15 @@ __metadata: version: 6.0.0 resolution: "locate-path@npm:6.0.0" dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + p-locate: "npm:^5.0.0" + checksum: 8/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a languageName: node linkType: hard "lodash@npm:^4.17.11": version: 4.17.21 resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + checksum: 8/eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 languageName: node linkType: hard @@ -2972,9 +2972,9 @@ __metadata: version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 8/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 languageName: node linkType: hard @@ -2982,12 +2982,12 @@ __metadata: version: 5.0.1 resolution: "log-update@npm:5.0.1" dependencies: - ansi-escapes: ^5.0.0 - cli-cursor: ^4.0.0 - slice-ansi: ^5.0.0 - strip-ansi: ^7.0.1 - wrap-ansi: ^8.0.1 - checksum: 2c6b47dcce6f9233df6d232a37d9834cb3657a0749ef6398f1706118de74c55f158587d4128c225297ea66803f35c5ac3db4f3f617046d817233c45eedc32ef1 + ansi-escapes: "npm:^5.0.0" + cli-cursor: "npm:^4.0.0" + slice-ansi: "npm:^5.0.0" + strip-ansi: "npm:^7.0.1" + wrap-ansi: "npm:^8.0.1" + checksum: 8/2c6b47dcce6f9233df6d232a37d9834cb3657a0749ef6398f1706118de74c55f158587d4128c225297ea66803f35c5ac3db4f3f617046d817233c45eedc32ef1 languageName: node linkType: hard @@ -2995,8 +2995,8 @@ __metadata: version: 5.1.1 resolution: "lru-cache@npm:5.1.1" dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + yallist: "npm:^3.0.2" + checksum: 8/c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb languageName: node linkType: hard @@ -3004,36 +3004,36 @@ __metadata: version: 6.0.0 resolution: "lru-cache@npm:6.0.0" dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + yallist: "npm:^4.0.0" + checksum: 8/f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 languageName: node linkType: hard "lru-cache@npm:^7.7.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" - checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + checksum: 8/e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 languageName: node linkType: hard "lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.0.1 resolution: "lru-cache@npm:10.0.1" - checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 + checksum: 8/06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 languageName: node linkType: hard "lru_map@npm:^0.3.3": version: 0.3.3 resolution: "lru_map@npm:0.3.3" - checksum: ca9dd43c65ed7a4f117c548028101c5b6855e10923ea9d1f635af53ad20c5868ff428c364d454a7b57fe391b89c704982275410c3c5099cca5aeee00d76e169a + checksum: 8/ca9dd43c65ed7a4f117c548028101c5b6855e10923ea9d1f635af53ad20c5868ff428c364d454a7b57fe391b89c704982275410c3c5099cca5aeee00d76e169a languageName: node linkType: hard "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + checksum: 8/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 languageName: node linkType: hard @@ -3041,36 +3041,36 @@ __metadata: version: 11.1.1 resolution: "make-fetch-happen@npm:11.1.1" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^17.0.0 - http-cache-semantics: ^4.1.1 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^5.0.0 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^10.0.0 - checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + agentkeepalive: "npm:^4.2.1" + cacache: "npm:^17.0.0" + http-cache-semantics: "npm:^4.1.1" + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.0" + is-lambda: "npm:^1.0.1" + lru-cache: "npm:^7.7.1" + minipass: "npm:^5.0.0" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + promise-retry: "npm:^2.0.1" + socks-proxy-agent: "npm:^7.0.0" + ssri: "npm:^10.0.0" + checksum: 8/7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 languageName: node linkType: hard "match-all@npm:^1.2.6": version: 1.2.6 resolution: "match-all@npm:1.2.6" - checksum: 3d4f16b8fd082f2fd10e362f4a8b71c62f8a767591b3db831ca2bdcf726337e9a64e4abc30e2ef053dc2bcfb875a9ed80bd78e006ad5ef11380a7158d0cb00e1 + checksum: 8/3d4f16b8fd082f2fd10e362f4a8b71c62f8a767591b3db831ca2bdcf726337e9a64e4abc30e2ef053dc2bcfb875a9ed80bd78e006ad5ef11380a7158d0cb00e1 languageName: node linkType: hard "mcl-wasm@npm:^0.7.1": version: 0.7.9 resolution: "mcl-wasm@npm:0.7.9" - checksum: 6b6ed5084156b98b2db70b223e1ba2c01953970b48a2e0c4ea3eeb9296610e6b3bfb2a2cce9e92e2d7ad61778b5f5a630e705e663835e915ba188c174a0a37fa + checksum: 8/6b6ed5084156b98b2db70b223e1ba2c01953970b48a2e0c4ea3eeb9296610e6b3bfb2a2cce9e92e2d7ad61778b5f5a630e705e663835e915ba188c174a0a37fa languageName: node linkType: hard @@ -3078,10 +3078,10 @@ __metadata: version: 1.3.5 resolution: "md5.js@npm:1.3.5" dependencies: - hash-base: ^3.0.0 - inherits: ^2.0.1 - safe-buffer: ^5.1.2 - checksum: 098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 8/098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c languageName: node linkType: hard @@ -3089,24 +3089,24 @@ __metadata: version: 1.0.0 resolution: "memory-level@npm:1.0.0" dependencies: - abstract-level: ^1.0.0 - functional-red-black-tree: ^1.0.1 - module-error: ^1.0.1 - checksum: 80b1b7aedaf936e754adbcd7b9303018c3684fb32f9992fd967c448f145d177f16c724fbba9ed3c3590a9475fd563151eae664d69b83d2ad48714852e9fc5c72 + abstract-level: "npm:^1.0.0" + functional-red-black-tree: "npm:^1.0.1" + module-error: "npm:^1.0.1" + checksum: 8/80b1b7aedaf936e754adbcd7b9303018c3684fb32f9992fd967c448f145d177f16c724fbba9ed3c3590a9475fd563151eae664d69b83d2ad48714852e9fc5c72 languageName: node linkType: hard "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" - checksum: f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 + checksum: 8/f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 languageName: node linkType: hard "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + checksum: 8/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 languageName: node linkType: hard @@ -3114,16 +3114,16 @@ __metadata: version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + braces: "npm:^3.0.2" + picomatch: "npm:^2.3.1" + checksum: 8/02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc languageName: node linkType: hard "mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + checksum: 8/0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f languageName: node linkType: hard @@ -3131,36 +3131,36 @@ __metadata: version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + mime-db: "npm:1.52.0" + checksum: 8/89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 languageName: node linkType: hard "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + checksum: 8/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a languageName: node linkType: hard "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" - checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + checksum: 8/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 languageName: node linkType: hard "minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" - checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + checksum: 8/cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 languageName: node linkType: hard "minimalistic-crypto-utils@npm:^1.0.1": version: 1.0.1 resolution: "minimalistic-crypto-utils@npm:1.0.1" - checksum: 6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed + checksum: 8/6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed languageName: node linkType: hard @@ -3168,8 +3168,8 @@ __metadata: version: 5.0.1 resolution: "minimatch@npm:5.0.1" dependencies: - brace-expansion: ^2.0.1 - checksum: b34b98463da4754bc526b244d680c69d4d6089451ebe512edaf6dd9eeed0279399cfa3edb19233513b8f830bf4bfcad911dddcdf125e75074100d52f724774f0 + brace-expansion: "npm:^2.0.1" + checksum: 8/b34b98463da4754bc526b244d680c69d4d6089451ebe512edaf6dd9eeed0279399cfa3edb19233513b8f830bf4bfcad911dddcdf125e75074100d52f724774f0 languageName: node linkType: hard @@ -3177,8 +3177,8 @@ __metadata: version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + brace-expansion: "npm:^1.1.7" + checksum: 8/c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a languageName: node linkType: hard @@ -3186,8 +3186,8 @@ __metadata: version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + brace-expansion: "npm:^2.0.1" + checksum: 8/253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 languageName: node linkType: hard @@ -3195,8 +3195,8 @@ __metadata: version: 1.0.2 resolution: "minipass-collect@npm:1.0.2" dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + minipass: "npm:^3.0.0" + checksum: 8/14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 languageName: node linkType: hard @@ -3204,14 +3204,14 @@ __metadata: version: 3.0.4 resolution: "minipass-fetch@npm:3.0.4" dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" dependenciesMeta: encoding: optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + checksum: 8/af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a languageName: node linkType: hard @@ -3219,8 +3219,8 @@ __metadata: version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + minipass: "npm:^3.0.0" + checksum: 8/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf languageName: node linkType: hard @@ -3228,8 +3228,8 @@ __metadata: version: 1.2.4 resolution: "minipass-pipeline@npm:1.2.4" dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + minipass: "npm:^3.0.0" + checksum: 8/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b languageName: node linkType: hard @@ -3237,8 +3237,8 @@ __metadata: version: 1.0.3 resolution: "minipass-sized@npm:1.0.3" dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + minipass: "npm:^3.0.0" + checksum: 8/79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 languageName: node linkType: hard @@ -3246,22 +3246,22 @@ __metadata: version: 3.3.6 resolution: "minipass@npm:3.3.6" dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + yallist: "npm:^4.0.0" + checksum: 8/a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 languageName: node linkType: hard "minipass@npm:^5.0.0": version: 5.0.0 resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + checksum: 8/425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea languageName: node linkType: hard "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": version: 7.0.4 resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + checksum: 8/87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 languageName: node linkType: hard @@ -3269,9 +3269,9 @@ __metadata: version: 2.1.2 resolution: "minizlib@npm:2.1.2" dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 8/f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 languageName: node linkType: hard @@ -3280,7 +3280,7 @@ __metadata: resolution: "mkdirp@npm:1.0.4" bin: mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + checksum: 8/a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f languageName: node linkType: hard @@ -3288,8 +3288,8 @@ __metadata: version: 0.38.5 resolution: "mnemonist@npm:0.38.5" dependencies: - obliterator: ^2.0.0 - checksum: 66080afc1616866beb164e230c432964d6eed467cf37ad00e9c10161b8267928124ca8f1d0ecfea86c85568acfa62d54faaf646a86968d1135189a0fdfdd6b78 + obliterator: "npm:^2.0.0" + checksum: 8/66080afc1616866beb164e230c432964d6eed467cf37ad00e9c10161b8267928124ca8f1d0ecfea86c85568acfa62d54faaf646a86968d1135189a0fdfdd6b78 languageName: node linkType: hard @@ -3297,52 +3297,52 @@ __metadata: version: 10.2.0 resolution: "mocha@npm:10.2.0" dependencies: - ansi-colors: 4.1.1 - browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4 - diff: 5.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 7.2.0 - he: 1.2.0 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 5.0.1 - ms: 2.1.3 - nanoid: 3.3.3 - serialize-javascript: 6.0.0 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 6.2.1 - yargs: 16.2.0 - yargs-parser: 20.2.4 - yargs-unparser: 2.0.0 + ansi-colors: "npm:4.1.1" + browser-stdout: "npm:1.3.1" + chokidar: "npm:3.5.3" + debug: "npm:4.3.4" + diff: "npm:5.0.0" + escape-string-regexp: "npm:4.0.0" + find-up: "npm:5.0.0" + glob: "npm:7.2.0" + he: "npm:1.2.0" + js-yaml: "npm:4.1.0" + log-symbols: "npm:4.1.0" + minimatch: "npm:5.0.1" + ms: "npm:2.1.3" + nanoid: "npm:3.3.3" + serialize-javascript: "npm:6.0.0" + strip-json-comments: "npm:3.1.1" + supports-color: "npm:8.1.1" + workerpool: "npm:6.2.1" + yargs: "npm:16.2.0" + yargs-parser: "npm:20.2.4" + yargs-unparser: "npm:2.0.0" bin: _mocha: bin/_mocha mocha: bin/mocha.js - checksum: 406c45eab122ffd6ea2003c2f108b2bc35ba036225eee78e0c784b6fa2c7f34e2b13f1dbacef55a4fdf523255d76e4f22d1b5aacda2394bd11666febec17c719 + checksum: 8/406c45eab122ffd6ea2003c2f108b2bc35ba036225eee78e0c784b6fa2c7f34e2b13f1dbacef55a4fdf523255d76e4f22d1b5aacda2394bd11666febec17c719 languageName: node linkType: hard "module-error@npm:^1.0.1, module-error@npm:^1.0.2": version: 1.0.2 resolution: "module-error@npm:1.0.2" - checksum: 5d653e35bd55b3e95f8aee2cdac108082ea892e71b8f651be92cde43e4ee86abee4fa8bd7fc3fe5e68b63926d42f63c54cd17b87a560c31f18739295575a3962 + checksum: 8/5d653e35bd55b3e95f8aee2cdac108082ea892e71b8f651be92cde43e4ee86abee4fa8bd7fc3fe5e68b63926d42f63c54cd17b87a560c31f18739295575a3962 languageName: node linkType: hard "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + checksum: 8/673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f languageName: node linkType: hard "ms@npm:2.1.3, ms@npm:^2.0.0": version: 2.1.3 resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + checksum: 8/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard @@ -3350,10 +3350,10 @@ __metadata: version: 0.2.1 resolution: "murmur-128@npm:0.2.1" dependencies: - encode-utf8: ^1.0.2 - fmix: ^0.1.0 - imul: ^1.0.0 - checksum: 94ff8b39bf1a1a7bde83b6d13f656bbe591e0a5b5ffe4384c39470120ab70e9eadf0af38557742a30d24421ddc63aea6bba1028a1d6b66553038ee86a660dd92 + encode-utf8: "npm:^1.0.2" + fmix: "npm:^0.1.0" + imul: "npm:^1.0.0" + checksum: 8/94ff8b39bf1a1a7bde83b6d13f656bbe591e0a5b5ffe4384c39470120ab70e9eadf0af38557742a30d24421ddc63aea6bba1028a1d6b66553038ee86a660dd92 languageName: node linkType: hard @@ -3362,21 +3362,21 @@ __metadata: resolution: "nanoid@npm:3.3.3" bin: nanoid: bin/nanoid.cjs - checksum: ada019402a07464a694553c61d2dca8a4353645a7d92f2830f0d487fedff403678a0bee5323a46522752b2eab95a0bc3da98b6cccaa7c0c55cd9975130e6d6f0 + checksum: 8/ada019402a07464a694553c61d2dca8a4353645a7d92f2830f0d487fedff403678a0bee5323a46522752b2eab95a0bc3da98b6cccaa7c0c55cd9975130e6d6f0 languageName: node linkType: hard "napi-macros@npm:^2.2.2": version: 2.2.2 resolution: "napi-macros@npm:2.2.2" - checksum: c6f9bd71cdbbc37ddc3535aa5be481238641d89585b8a3f4d301cb89abf459e2d294810432bb7d12056d1f9350b1a0899a5afcf460237a3da6c398cf0fec7629 + checksum: 8/c6f9bd71cdbbc37ddc3535aa5be481238641d89585b8a3f4d301cb89abf459e2d294810432bb7d12056d1f9350b1a0899a5afcf460237a3da6c398cf0fec7629 languageName: node linkType: hard "negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + checksum: 8/b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 languageName: node linkType: hard @@ -3384,8 +3384,8 @@ __metadata: version: 2.0.2 resolution: "node-addon-api@npm:2.0.2" dependencies: - node-gyp: latest - checksum: 31fb22d674648204f8dd94167eb5aac896c841b84a9210d614bf5d97c74ef059cc6326389cf0c54d2086e35312938401d4cc82e5fcd679202503eb8ac84814f8 + node-gyp: "npm:latest" + checksum: 8/31fb22d674648204f8dd94167eb5aac896c841b84a9210d614bf5d97c74ef059cc6326389cf0c54d2086e35312938401d4cc82e5fcd679202503eb8ac84814f8 languageName: node linkType: hard @@ -3396,7 +3396,7 @@ __metadata: node-gyp-build: bin.js node-gyp-build-optional: optional.js node-gyp-build-test: build-test.js - checksum: c3676d337b36803bc7792e35bf7fdcda7cdcb7e289b8f9855a5535702a82498eb976842fefcf487258c58005ca32ce3d537fbed91280b04409161dcd7232a882 + checksum: 8/c3676d337b36803bc7792e35bf7fdcda7cdcb7e289b8f9855a5535702a82498eb976842fefcf487258c58005ca32ce3d537fbed91280b04409161dcd7232a882 languageName: node linkType: hard @@ -3404,20 +3404,20 @@ __metadata: version: 9.4.0 resolution: "node-gyp@npm:9.4.0" dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^11.0.3 - nopt: ^6.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^7.1.4" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^11.0.3" + nopt: "npm:^6.0.0" + npmlog: "npm:^6.0.0" + rimraf: "npm:^3.0.2" + semver: "npm:^7.3.5" + tar: "npm:^6.1.2" + which: "npm:^2.0.2" bin: node-gyp: bin/node-gyp.js - checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + checksum: 8/78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 languageName: node linkType: hard @@ -3425,17 +3425,17 @@ __metadata: version: 6.0.0 resolution: "nopt@npm:6.0.0" dependencies: - abbrev: ^1.0.0 + abbrev: "npm:^1.0.0" bin: nopt: bin/nopt.js - checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + checksum: 8/82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac languageName: node linkType: hard "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + checksum: 8/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 languageName: node linkType: hard @@ -3443,8 +3443,8 @@ __metadata: version: 5.1.0 resolution: "npm-run-path@npm:5.1.0" dependencies: - path-key: ^4.0.0 - checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + path-key: "npm:^4.0.0" + checksum: 8/dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 languageName: node linkType: hard @@ -3452,25 +3452,25 @@ __metadata: version: 6.0.2 resolution: "npmlog@npm:6.0.2" dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + are-we-there-yet: "npm:^3.0.0" + console-control-strings: "npm:^1.1.0" + gauge: "npm:^4.0.3" + set-blocking: "npm:^2.0.0" + checksum: 8/ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a languageName: node linkType: hard "object-inspect@npm:^1.9.0": version: 1.13.0 resolution: "object-inspect@npm:1.13.0" - checksum: 21353e910a3079466cb44adca71d8bef15bd8b87e518eb68bb33d82c5c70b83193993edce432cc92268f7dd02c4a8ab338663a011844367d0bd0559f6dde1fed + checksum: 8/21353e910a3079466cb44adca71d8bef15bd8b87e518eb68bb33d82c5c70b83193993edce432cc92268f7dd02c4a8ab338663a011844367d0bd0559f6dde1fed languageName: node linkType: hard "obliterator@npm:^2.0.0": version: 2.0.4 resolution: "obliterator@npm:2.0.4" - checksum: f28ad35b6d812089315f375dc3e6e5f9bebf958ebe4b10ccd471c7115cbcf595e74bdac4783ae758e5b1f47e3096427fdb37cfa7bed566b132df92ff317b9a7c + checksum: 8/f28ad35b6d812089315f375dc3e6e5f9bebf958ebe4b10ccd471c7115cbcf595e74bdac4783ae758e5b1f47e3096427fdb37cfa7bed566b132df92ff317b9a7c languageName: node linkType: hard @@ -3478,8 +3478,8 @@ __metadata: version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + wrappy: "npm:1" + checksum: 8/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 languageName: node linkType: hard @@ -3487,8 +3487,8 @@ __metadata: version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + mimic-fn: "npm:^2.1.0" + checksum: 8/2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 languageName: node linkType: hard @@ -3496,15 +3496,15 @@ __metadata: version: 6.0.0 resolution: "onetime@npm:6.0.0" dependencies: - mimic-fn: ^4.0.0 - checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + mimic-fn: "npm:^4.0.0" + checksum: 8/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 languageName: node linkType: hard "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + checksum: 8/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d languageName: node linkType: hard @@ -3512,8 +3512,8 @@ __metadata: version: 1.3.0 resolution: "p-limit@npm:1.3.0" dependencies: - p-try: ^1.0.0 - checksum: 281c1c0b8c82e1ac9f81acd72a2e35d402bf572e09721ce5520164e9de07d8274451378a3470707179ad13240535558f4b277f02405ad752e08c7d5b0d54fbfd + p-try: "npm:^1.0.0" + checksum: 8/281c1c0b8c82e1ac9f81acd72a2e35d402bf572e09721ce5520164e9de07d8274451378a3470707179ad13240535558f4b277f02405ad752e08c7d5b0d54fbfd languageName: node linkType: hard @@ -3521,8 +3521,8 @@ __metadata: version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + yocto-queue: "npm:^0.1.0" + checksum: 8/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 languageName: node linkType: hard @@ -3530,8 +3530,8 @@ __metadata: version: 2.0.0 resolution: "p-locate@npm:2.0.0" dependencies: - p-limit: ^1.1.0 - checksum: e2dceb9b49b96d5513d90f715780f6f4972f46987dc32a0e18bc6c3fc74a1a5d73ec5f81b1398af5e58b99ea1ad03fd41e9181c01fa81b4af2833958696e3081 + p-limit: "npm:^1.1.0" + checksum: 8/e2dceb9b49b96d5513d90f715780f6f4972f46987dc32a0e18bc6c3fc74a1a5d73ec5f81b1398af5e58b99ea1ad03fd41e9181c01fa81b4af2833958696e3081 languageName: node linkType: hard @@ -3539,8 +3539,8 @@ __metadata: version: 5.0.0 resolution: "p-locate@npm:5.0.0" dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + p-limit: "npm:^3.0.2" + checksum: 8/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 languageName: node linkType: hard @@ -3548,57 +3548,57 @@ __metadata: version: 4.0.0 resolution: "p-map@npm:4.0.0" dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + aggregate-error: "npm:^3.0.0" + checksum: 8/cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c languageName: node linkType: hard "p-try@npm:^1.0.0": version: 1.0.0 resolution: "p-try@npm:1.0.0" - checksum: 3b5303f77eb7722144154288bfd96f799f8ff3e2b2b39330efe38db5dd359e4fb27012464cd85cb0a76e9b7edd1b443568cb3192c22e7cffc34989df0bafd605 + checksum: 8/3b5303f77eb7722144154288bfd96f799f8ff3e2b2b39330efe38db5dd359e4fb27012464cd85cb0a76e9b7edd1b443568cb3192c22e7cffc34989df0bafd605 languageName: node linkType: hard "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" - checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + checksum: 8/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a languageName: node linkType: hard "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + checksum: 8/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 languageName: node linkType: hard "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + checksum: 8/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 languageName: node linkType: hard "path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + checksum: 8/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 languageName: node linkType: hard "path-key@npm:^4.0.0": version: 4.0.0 resolution: "path-key@npm:4.0.0" - checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + checksum: 8/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 languageName: node linkType: hard "path-parse@npm:^1.0.6": version: 1.0.7 resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + checksum: 8/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a languageName: node linkType: hard @@ -3606,9 +3606,9 @@ __metadata: version: 1.10.1 resolution: "path-scurry@npm:1.10.1" dependencies: - lru-cache: ^9.1.1 || ^10.0.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + lru-cache: "npm:^9.1.1 || ^10.0.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 8/e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 languageName: node linkType: hard @@ -3616,19 +3616,19 @@ __metadata: version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: - create-hash: ^1.1.2 - create-hmac: ^1.1.4 - ripemd160: ^2.0.1 - safe-buffer: ^5.0.1 - sha.js: ^2.4.8 - checksum: 2c950a100b1da72123449208e231afc188d980177d021d7121e96a2de7f2abbc96ead2b87d03d8fe5c318face097f203270d7e27908af9f471c165a4e8e69c92 + create-hash: "npm:^1.1.2" + create-hmac: "npm:^1.1.4" + ripemd160: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 8/2c950a100b1da72123449208e231afc188d980177d021d7121e96a2de7f2abbc96ead2b87d03d8fe5c318face097f203270d7e27908af9f471c165a4e8e69c92 languageName: node linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + checksum: 8/050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf languageName: node linkType: hard @@ -3637,7 +3637,7 @@ __metadata: resolution: "pidtree@npm:0.6.0" bin: pidtree: bin/pidtree.js - checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a + checksum: 8/8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a languageName: node linkType: hard @@ -3645,9 +3645,9 @@ __metadata: version: 2.0.1 resolution: "promise-retry@npm:2.0.1" dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 8/f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 languageName: node linkType: hard @@ -3655,15 +3655,15 @@ __metadata: version: 6.11.2 resolution: "qs@npm:6.11.2" dependencies: - side-channel: ^1.0.4 - checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b + side-channel: "npm:^1.0.4" + checksum: 8/e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b languageName: node linkType: hard "queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + checksum: 8/b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 languageName: node linkType: hard @@ -3671,8 +3671,8 @@ __metadata: version: 2.1.0 resolution: "randombytes@npm:2.1.0" dependencies: - safe-buffer: ^5.1.0 - checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 + safe-buffer: "npm:^5.1.0" + checksum: 8/d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 languageName: node linkType: hard @@ -3680,11 +3680,11 @@ __metadata: version: 2.5.2 resolution: "raw-body@npm:2.5.2" dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + unpipe: "npm:1.0.0" + checksum: 8/ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 languageName: node linkType: hard @@ -3692,10 +3692,10 @@ __metadata: version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 8/bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard @@ -3703,22 +3703,22 @@ __metadata: version: 3.6.0 resolution: "readdirp@npm:3.6.0" dependencies: - picomatch: ^2.2.1 - checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + picomatch: "npm:^2.2.1" + checksum: 8/1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 languageName: node linkType: hard "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + checksum: 8/fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 languageName: node linkType: hard "require-from-string@npm:^2.0.0": version: 2.0.2 resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + checksum: 8/a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b languageName: node linkType: hard @@ -3726,17 +3726,17 @@ __metadata: version: 1.17.0 resolution: "resolve@npm:1.17.0" dependencies: - path-parse: ^1.0.6 - checksum: 9ceaf83b3429f2d7ff5d0281b8d8f18a1f05b6ca86efea7633e76b8f76547f33800799dfdd24434942dec4fbd9e651ed3aef577d9a6b5ec87ad89c1060e24759 + path-parse: "npm:^1.0.6" + checksum: 8/9ceaf83b3429f2d7ff5d0281b8d8f18a1f05b6ca86efea7633e76b8f76547f33800799dfdd24434942dec4fbd9e651ed3aef577d9a6b5ec87ad89c1060e24759 languageName: node linkType: hard -"resolve@patch:resolve@1.17.0#~builtin": +"resolve@patch:resolve@npm%3A1.17.0#optional!builtin": version: 1.17.0 - resolution: "resolve@patch:resolve@npm%3A1.17.0#~builtin::version=1.17.0&hash=c3c19d" + resolution: "resolve@patch:resolve@npm%3A1.17.0#optional!builtin::version=1.17.0&hash=c3c19d" dependencies: - path-parse: ^1.0.6 - checksum: 6fd799f282ddf078c4bc20ce863e3af01fa8cb218f0658d9162c57161a2dbafe092b13015b9a4c58d0e1e801cf7aa7a4f13115fea9db98c3f9a0c43e429bad6f + path-parse: "npm:^1.0.6" + checksum: 10c0/e072e52be3c3dbfd086761115db4a5136753e7aefc0e665e66e7307ddcd9d6b740274516055c74aee44921625e95993f03570450aa310b8d73b1c9daa056c4cd languageName: node linkType: hard @@ -3744,23 +3744,23 @@ __metadata: version: 4.0.0 resolution: "restore-cursor@npm:4.0.0" dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 8/5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af languageName: node linkType: hard "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + checksum: 8/623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c languageName: node linkType: hard "rfdc@npm:^1.3.0": version: 1.3.0 resolution: "rfdc@npm:1.3.0" - checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + checksum: 8/fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 languageName: node linkType: hard @@ -3768,10 +3768,10 @@ __metadata: version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: - glob: ^7.1.3 + glob: "npm:^7.1.3" bin: rimraf: ./bin.js - checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd + checksum: 8/cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd languageName: node linkType: hard @@ -3779,10 +3779,10 @@ __metadata: version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: - glob: ^7.1.3 + glob: "npm:^7.1.3" bin: rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + checksum: 8/87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 languageName: node linkType: hard @@ -3790,9 +3790,9 @@ __metadata: version: 2.0.2 resolution: "ripemd160@npm:2.0.2" dependencies: - hash-base: ^3.0.0 - inherits: ^2.0.1 - checksum: 006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + checksum: 8/006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 languageName: node linkType: hard @@ -3800,10 +3800,10 @@ __metadata: version: 2.2.7 resolution: "rlp@npm:2.2.7" dependencies: - bn.js: ^5.2.0 + bn.js: "npm:^5.2.0" bin: rlp: bin/rlp - checksum: 3db4dfe5c793f40ac7e0be689a1f75d05e6f2ca0c66189aeb62adab8c436b857ab4420a419251ee60370d41d957a55698fc5e23ab1e1b41715f33217bc4bb558 + checksum: 8/3db4dfe5c793f40ac7e0be689a1f75d05e6f2ca0c66189aeb62adab8c436b857ab4420a419251ee60370d41d957a55698fc5e23ab1e1b41715f33217bc4bb558 languageName: node linkType: hard @@ -3811,13 +3811,13 @@ __metadata: version: 0.0.0-use.local resolution: "rns-contracts@workspace:." dependencies: - dotenv: ^16.3.1 - hardhat: ^2.12.7 - hardhat-deploy: 0.11.29 - husky: ^8.0.3 - lint-staged: ^14.0.1 - ts-node: ^10.4.0 - typescript: ^4.5.4 + dotenv: "npm:^16.3.1" + hardhat: "npm:^2.12.7" + hardhat-deploy: "npm:0.11.29" + husky: "npm:^8.0.3" + lint-staged: "npm:^14.0.1" + ts-node: "npm:^10.4.0" + typescript: "npm:^4.5.4" languageName: unknown linkType: soft @@ -3825,43 +3825,43 @@ __metadata: version: 1.1.0 resolution: "run-parallel-limit@npm:1.1.0" dependencies: - queue-microtask: ^1.2.2 - checksum: 672c3b87e7f939c684b9965222b361421db0930223ed1e43ebf0e7e48ccc1a022ea4de080bef4d5468434e2577c33b7681e3f03b7593fdc49ad250a55381123c + queue-microtask: "npm:^1.2.2" + checksum: 8/672c3b87e7f939c684b9965222b361421db0930223ed1e43ebf0e7e48ccc1a022ea4de080bef4d5468434e2577c33b7681e3f03b7593fdc49ad250a55381123c languageName: node linkType: hard "rustbn.js@npm:~0.2.0": version: 0.2.0 resolution: "rustbn.js@npm:0.2.0" - checksum: 2148e7ba34e70682907ee29df4784639e6eb025481b2c91249403b7ec57181980161868d9aa24822a5075dd1bb5a180dfedc77309e5f0d27b6301f9b563af99a + checksum: 8/2148e7ba34e70682907ee29df4784639e6eb025481b2c91249403b7ec57181980161868d9aa24822a5075dd1bb5a180dfedc77309e5f0d27b6301f9b563af99a languageName: node linkType: hard "safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + checksum: 8/b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard "safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" - checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + checksum: 8/f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c languageName: node linkType: hard "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + checksum: 8/cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 languageName: node linkType: hard "scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0": version: 3.0.1 resolution: "scrypt-js@npm:3.0.1" - checksum: b7c7d1a68d6ca946f2fbb0778e0c4ec63c65501b54023b2af7d7e9f48fdb6c6580d6f7675cd53bda5944c5ebc057560d5a6365079752546865defb3b79dea454 + checksum: 8/b7c7d1a68d6ca946f2fbb0778e0c4ec63c65501b54023b2af7d7e9f48fdb6c6580d6f7675cd53bda5944c5ebc057560d5a6365079752546865defb3b79dea454 languageName: node linkType: hard @@ -3869,11 +3869,11 @@ __metadata: version: 4.0.3 resolution: "secp256k1@npm:4.0.3" dependencies: - elliptic: ^6.5.4 - node-addon-api: ^2.0.0 - node-gyp: latest - node-gyp-build: ^4.2.0 - checksum: 21e219adc0024fbd75021001358780a3cc6ac21273c3fcaef46943af73969729709b03f1df7c012a0baab0830fb9a06ccc6b42f8d50050c665cb98078eab477b + elliptic: "npm:^6.5.4" + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + checksum: 8/21e219adc0024fbd75021001358780a3cc6ac21273c3fcaef46943af73969729709b03f1df7c012a0baab0830fb9a06ccc6b42f8d50050c665cb98078eab477b languageName: node linkType: hard @@ -3882,7 +3882,7 @@ __metadata: resolution: "semver@npm:5.7.2" bin: semver: bin/semver - checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + checksum: 8/fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard @@ -3891,7 +3891,7 @@ __metadata: resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + checksum: 8/ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 languageName: node linkType: hard @@ -3899,10 +3899,10 @@ __metadata: version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: - lru-cache: ^6.0.0 + lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + checksum: 8/12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 languageName: node linkType: hard @@ -3910,29 +3910,29 @@ __metadata: version: 6.0.0 resolution: "serialize-javascript@npm:6.0.0" dependencies: - randombytes: ^2.1.0 - checksum: 56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93 + randombytes: "npm:^2.1.0" + checksum: 8/56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93 languageName: node linkType: hard "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + checksum: 8/6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 languageName: node linkType: hard "setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" - checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd + checksum: 8/c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd languageName: node linkType: hard "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" - checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 + checksum: 8/be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 languageName: node linkType: hard @@ -3940,11 +3940,11 @@ __metadata: version: 2.4.11 resolution: "sha.js@npm:2.4.11" dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" bin: sha.js: ./bin.js - checksum: ebd3f59d4b799000699097dadb831c8e3da3eb579144fd7eb7a19484cbcbb7aca3c68ba2bb362242eb09e33217de3b4ea56e4678184c334323eca24a58e3ad07 + checksum: 8/ebd3f59d4b799000699097dadb831c8e3da3eb579144fd7eb7a19484cbcbb7aca3c68ba2bb362242eb09e33217de3b4ea56e4678184c334323eca24a58e3ad07 languageName: node linkType: hard @@ -3952,15 +3952,15 @@ __metadata: version: 2.0.0 resolution: "shebang-command@npm:2.0.0" dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + shebang-regex: "npm:^3.0.0" + checksum: 8/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa languageName: node linkType: hard "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + checksum: 8/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 languageName: node linkType: hard @@ -3968,24 +3968,24 @@ __metadata: version: 1.0.4 resolution: "side-channel@npm:1.0.4" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + call-bind: "npm:^1.0.0" + get-intrinsic: "npm:^1.0.2" + object-inspect: "npm:^1.9.0" + checksum: 8/351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 languageName: node linkType: hard "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + checksum: 8/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 languageName: node linkType: hard "signal-exit@npm:^4.0.1": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + checksum: 8/64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 languageName: node linkType: hard @@ -3993,16 +3993,16 @@ __metadata: version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + ansi-styles: "npm:^6.0.0" + is-fullwidth-code-point: "npm:^4.0.0" + checksum: 8/7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e languageName: node linkType: hard "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + checksum: 8/b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b languageName: node linkType: hard @@ -4010,10 +4010,10 @@ __metadata: version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + agent-base: "npm:^6.0.2" + debug: "npm:^4.3.3" + socks: "npm:^2.6.2" + checksum: 8/720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 languageName: node linkType: hard @@ -4021,9 +4021,9 @@ __metadata: version: 2.7.1 resolution: "socks@npm:2.7.1" dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + ip: "npm:^2.0.0" + smart-buffer: "npm:^4.2.0" + checksum: 8/259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 languageName: node linkType: hard @@ -4031,18 +4031,18 @@ __metadata: version: 0.7.3 resolution: "solc@npm:0.7.3" dependencies: - command-exists: ^1.2.8 - commander: 3.0.2 - follow-redirects: ^1.12.1 - fs-extra: ^0.30.0 - js-sha3: 0.8.0 - memorystream: ^0.3.1 - require-from-string: ^2.0.0 - semver: ^5.5.0 - tmp: 0.0.33 + command-exists: "npm:^1.2.8" + commander: "npm:3.0.2" + follow-redirects: "npm:^1.12.1" + fs-extra: "npm:^0.30.0" + js-sha3: "npm:0.8.0" + memorystream: "npm:^0.3.1" + require-from-string: "npm:^2.0.0" + semver: "npm:^5.5.0" + tmp: "npm:0.0.33" bin: solcjs: solcjs - checksum: 2d8eb16c6d8f648213c94dc8d977cffe5099cba7d41c82d92d769ef71ae8320a985065ce3d6c306440a85f8e8d2b27fb30bdd3ac38f69e5c1fa0ab8a3fb2f217 + checksum: 8/2d8eb16c6d8f648213c94dc8d977cffe5099cba7d41c82d92d769ef71ae8320a985065ce3d6c306440a85f8e8d2b27fb30bdd3ac38f69e5c1fa0ab8a3fb2f217 languageName: node linkType: hard @@ -4050,16 +4050,16 @@ __metadata: version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 8/43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 languageName: node linkType: hard "source-map@npm:^0.6.0": version: 0.6.1 resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + checksum: 8/59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 languageName: node linkType: hard @@ -4067,8 +4067,8 @@ __metadata: version: 10.0.5 resolution: "ssri@npm:10.0.5" dependencies: - minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + minipass: "npm:^7.0.3" + checksum: 8/0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 languageName: node linkType: hard @@ -4076,22 +4076,22 @@ __metadata: version: 0.1.10 resolution: "stacktrace-parser@npm:0.1.10" dependencies: - type-fest: ^0.7.1 - checksum: f4fbddfc09121d91e587b60de4beb4941108e967d71ad3a171812dc839b010ca374d064ad0a296295fed13acd103609d99a4224a25b4e67de13cae131f1901ee + type-fest: "npm:^0.7.1" + checksum: 8/f4fbddfc09121d91e587b60de4beb4941108e967d71ad3a171812dc839b010ca374d064ad0a296295fed13acd103609d99a4224a25b4e67de13cae131f1901ee languageName: node linkType: hard "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" - checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + checksum: 8/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb languageName: node linkType: hard "string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" - checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + checksum: 8/8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f languageName: node linkType: hard @@ -4099,10 +4099,10 @@ __metadata: version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 8/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb languageName: node linkType: hard @@ -4110,10 +4110,10 @@ __metadata: version: 5.1.2 resolution: "string-width@npm:5.1.2" dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 8/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 languageName: node linkType: hard @@ -4121,8 +4121,8 @@ __metadata: version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + safe-buffer: "npm:~5.2.0" + checksum: 8/8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 languageName: node linkType: hard @@ -4130,8 +4130,8 @@ __metadata: version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + ansi-regex: "npm:^5.0.1" + checksum: 8/f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c languageName: node linkType: hard @@ -4139,15 +4139,15 @@ __metadata: version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + ansi-regex: "npm:^6.0.1" + checksum: 8/859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d languageName: node linkType: hard "strip-final-newline@npm:^3.0.0": version: 3.0.0 resolution: "strip-final-newline@npm:3.0.0" - checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + checksum: 8/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 languageName: node linkType: hard @@ -4155,15 +4155,15 @@ __metadata: version: 1.0.0 resolution: "strip-hex-prefix@npm:1.0.0" dependencies: - is-hex-prefixed: 1.0.0 - checksum: 4cafe7caee1d281d3694d14920fd5d3c11adf09371cef7e2ccedd5b83efd9e9bd2219b5d6ce6e809df6e0f437dc9d30db1192116580875698aad164a6d6b285b + is-hex-prefixed: "npm:1.0.0" + checksum: 8/4cafe7caee1d281d3694d14920fd5d3c11adf09371cef7e2ccedd5b83efd9e9bd2219b5d6ce6e809df6e0f437dc9d30db1192116580875698aad164a6d6b285b languageName: node linkType: hard "strip-json-comments@npm:3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + checksum: 8/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 languageName: node linkType: hard @@ -4171,8 +4171,8 @@ __metadata: version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + has-flag: "npm:^4.0.0" + checksum: 8/c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 languageName: node linkType: hard @@ -4180,8 +4180,8 @@ __metadata: version: 5.5.0 resolution: "supports-color@npm:5.5.0" dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + has-flag: "npm:^3.0.0" + checksum: 8/95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac languageName: node linkType: hard @@ -4189,8 +4189,8 @@ __metadata: version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + has-flag: "npm:^4.0.0" + checksum: 8/3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a languageName: node linkType: hard @@ -4198,13 +4198,13 @@ __metadata: version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 8/f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c languageName: node linkType: hard @@ -4212,8 +4212,8 @@ __metadata: version: 0.0.33 resolution: "tmp@npm:0.0.33" dependencies: - os-tmpdir: ~1.0.2 - checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 + os-tmpdir: "npm:~1.0.2" + checksum: 8/902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 languageName: node linkType: hard @@ -4221,15 +4221,15 @@ __metadata: version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + is-number: "npm:^7.0.0" + checksum: 8/f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed languageName: node linkType: hard "toidentifier@npm:1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" - checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + checksum: 8/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 languageName: node linkType: hard @@ -4237,19 +4237,19 @@ __metadata: version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" peerDependencies: "@swc/core": ">=1.2.50" "@swc/wasm": ">=1.2.50" @@ -4267,56 +4267,56 @@ __metadata: ts-node-script: dist/bin-script.js ts-node-transpile-only: dist/bin-transpile.js ts-script: dist/bin-script-deprecated.js - checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 + checksum: 8/090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35 languageName: node linkType: hard "tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + checksum: 8/dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd languageName: node linkType: hard "tsort@npm:0.0.1": version: 0.0.1 resolution: "tsort@npm:0.0.1" - checksum: 581566c248690b9ea7e431e1545affb3d2cab0f5dcd0e45ddef815dfaec4864cb5f0cfd8072924dedbc0de9585ff07e3e65db60f14fab4123737b9bb6e72eacc + checksum: 8/581566c248690b9ea7e431e1545affb3d2cab0f5dcd0e45ddef815dfaec4864cb5f0cfd8072924dedbc0de9585ff07e3e65db60f14fab4123737b9bb6e72eacc languageName: node linkType: hard "tweetnacl-util@npm:^0.15.1": version: 0.15.1 resolution: "tweetnacl-util@npm:0.15.1" - checksum: ae6aa8a52cdd21a95103a4cc10657d6a2040b36c7a6da7b9d3ab811c6750a2d5db77e8c36969e75fdee11f511aa2b91c552496c6e8e989b6e490e54aca2864fc + checksum: 8/ae6aa8a52cdd21a95103a4cc10657d6a2040b36c7a6da7b9d3ab811c6750a2d5db77e8c36969e75fdee11f511aa2b91c552496c6e8e989b6e490e54aca2864fc languageName: node linkType: hard "tweetnacl@npm:^1.0.3": version: 1.0.3 resolution: "tweetnacl@npm:1.0.3" - checksum: e4a57cac188f0c53f24c7a33279e223618a2bfb5fea426231991652a13247bea06b081fd745d71291fcae0f4428d29beba1b984b1f1ce6f66b06a6d1ab90645c + checksum: 8/e4a57cac188f0c53f24c7a33279e223618a2bfb5fea426231991652a13247bea06b081fd745d71291fcae0f4428d29beba1b984b1f1ce6f66b06a6d1ab90645c languageName: node linkType: hard "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + checksum: 8/e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 languageName: node linkType: hard "type-fest@npm:^0.7.1": version: 0.7.1 resolution: "type-fest@npm:0.7.1" - checksum: 5b1b113529d59949d97b76977d545989ddc11b81bb0c766b6d2ccc65473cb4b4a5c7d24f5be2c2bb2de302a5d7a13c1732ea1d34c8c59b7e0ec1f890cf7fc424 + checksum: 8/5b1b113529d59949d97b76977d545989ddc11b81bb0c766b6d2ccc65473cb4b4a5c7d24f5be2c2bb2de302a5d7a13c1732ea1d34c8c59b7e0ec1f890cf7fc424 languageName: node linkType: hard "type-fest@npm:^1.0.2": version: 1.4.0 resolution: "type-fest@npm:1.4.0" - checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + checksum: 8/b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 languageName: node linkType: hard @@ -4326,24 +4326,24 @@ __metadata: bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + checksum: 8/ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db languageName: node linkType: hard -"typescript@patch:typescript@^4.5.4#~builtin": +"typescript@patch:typescript@npm%3A^4.5.4#optional!builtin": version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" + resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 + checksum: 10c0/e3333f887c6829dfe0ab6c1dbe0dd1e3e2aeb56c66460cb85c5440c566f900c833d370ca34eb47558c0c69e78ced4bfe09b8f4f98b6de7afed9b84b8d1dd06a1 languageName: node linkType: hard "undici-types@npm:~5.25.1": version: 5.25.3 resolution: "undici-types@npm:5.25.3" - checksum: ec9d2cc36520cbd9fbe3b3b6c682a87fe5be214699e1f57d1e3d9a2cb5be422e62735f06e0067dc325fd3dd7404c697e4d479f9147dc8a804e049e29f357f2ff + checksum: 8/ec9d2cc36520cbd9fbe3b3b6c682a87fe5be214699e1f57d1e3d9a2cb5be422e62735f06e0067dc325fd3dd7404c697e4d479f9147dc8a804e049e29f357f2ff languageName: node linkType: hard @@ -4351,8 +4351,8 @@ __metadata: version: 5.28.4 resolution: "undici@npm:5.28.4" dependencies: - "@fastify/busboy": ^2.0.0 - checksum: a8193132d84540e4dc1895ecc8dbaa176e8a49d26084d6fbe48a292e28397cd19ec5d13bc13e604484e76f94f6e334b2bdc740d5f06a6e50c44072818d0c19f9 + "@fastify/busboy": "npm:^2.0.0" + checksum: 8/a8193132d84540e4dc1895ecc8dbaa176e8a49d26084d6fbe48a292e28397cd19ec5d13bc13e604484e76f94f6e334b2bdc740d5f06a6e50c44072818d0c19f9 languageName: node linkType: hard @@ -4360,8 +4360,8 @@ __metadata: version: 3.0.0 resolution: "unique-filename@npm:3.0.0" dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + unique-slug: "npm:^4.0.0" + checksum: 8/8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df languageName: node linkType: hard @@ -4369,36 +4369,36 @@ __metadata: version: 4.0.0 resolution: "unique-slug@npm:4.0.0" dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + imurmurhash: "npm:^0.1.4" + checksum: 8/0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 languageName: node linkType: hard "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" - checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff + checksum: 8/40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff languageName: node linkType: hard "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + checksum: 8/2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 languageName: node linkType: hard "unpipe@npm:1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" - checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + checksum: 8/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 languageName: node linkType: hard "util-deprecate@npm:^1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + checksum: 8/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 languageName: node linkType: hard @@ -4407,14 +4407,14 @@ __metadata: resolution: "uuid@npm:8.3.2" bin: uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + checksum: 8/5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df languageName: node linkType: hard "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + checksum: 8/78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 languageName: node linkType: hard @@ -4422,10 +4422,10 @@ __metadata: version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: - isexe: ^2.0.0 + isexe: "npm:^2.0.0" bin: node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + checksum: 8/1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 languageName: node linkType: hard @@ -4433,15 +4433,15 @@ __metadata: version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + string-width: "npm:^1.0.2 || 2 || 3 || 4" + checksum: 8/d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 languageName: node linkType: hard "workerpool@npm:6.2.1": version: 6.2.1 resolution: "workerpool@npm:6.2.1" - checksum: c2c6eebbc5225f10f758d599a5c016fa04798bcc44e4c1dffb34050cd361d7be2e97891aa44419e7afe647b1f767b1dc0b85a5e046c409d890163f655028b09d + checksum: 8/c2c6eebbc5225f10f758d599a5c016fa04798bcc44e4c1dffb34050cd361d7be2e97891aa44419e7afe647b1f767b1dc0b85a5e046c409d890163f655028b09d languageName: node linkType: hard @@ -4449,10 +4449,10 @@ __metadata: version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 8/a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b languageName: node linkType: hard @@ -4460,17 +4460,17 @@ __metadata: version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 8/371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 languageName: node linkType: hard "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + checksum: 8/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 languageName: node linkType: hard @@ -4485,7 +4485,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 3a990b32ed08c72070d5e8913e14dfcd831919205be52a3ff0b4cdd998c8d554f167c9df3841605cde8b11d607768cacab3e823c58c96a5c08c987e093eb767a + checksum: 8/3a990b32ed08c72070d5e8913e14dfcd831919205be52a3ff0b4cdd998c8d554f167c9df3841605cde8b11d607768cacab3e823c58c96a5c08c987e093eb767a languageName: node linkType: hard @@ -4500,49 +4500,49 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 + checksum: 8/c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 languageName: node linkType: hard "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + checksum: 8/54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 languageName: node linkType: hard "yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + checksum: 8/48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d languageName: node linkType: hard "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + checksum: 8/343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 languageName: node linkType: hard "yaml@npm:2.3.1": version: 2.3.1 resolution: "yaml@npm:2.3.1" - checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 + checksum: 8/2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 languageName: node linkType: hard "yargs-parser@npm:20.2.4": version: 20.2.4 resolution: "yargs-parser@npm:20.2.4" - checksum: d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924 + checksum: 8/d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924 languageName: node linkType: hard "yargs-parser@npm:^20.2.2": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" - checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + checksum: 8/8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 languageName: node linkType: hard @@ -4550,11 +4550,11 @@ __metadata: version: 2.0.0 resolution: "yargs-unparser@npm:2.0.0" dependencies: - camelcase: ^6.0.0 - decamelize: ^4.0.0 - flat: ^5.0.2 - is-plain-obj: ^2.1.0 - checksum: 68f9a542c6927c3768c2f16c28f71b19008710abd6b8f8efbac6dcce26bbb68ab6503bed1d5994bdbc2df9a5c87c161110c1dfe04c6a3fe5c6ad1b0e15d9a8a3 + camelcase: "npm:^6.0.0" + decamelize: "npm:^4.0.0" + flat: "npm:^5.0.2" + is-plain-obj: "npm:^2.1.0" + checksum: 8/68f9a542c6927c3768c2f16c28f71b19008710abd6b8f8efbac6dcce26bbb68ab6503bed1d5994bdbc2df9a5c87c161110c1dfe04c6a3fe5c6ad1b0e15d9a8a3 languageName: node linkType: hard @@ -4562,28 +4562,28 @@ __metadata: version: 16.2.0 resolution: "yargs@npm:16.2.0" dependencies: - cliui: ^7.0.2 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.0 - y18n: ^5.0.5 - yargs-parser: ^20.2.2 - checksum: b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 8/b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 languageName: node linkType: hard "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + checksum: 8/2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 languageName: node linkType: hard "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + checksum: 8/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard @@ -4592,6 +4592,6 @@ __metadata: resolution: "zksync-web3@npm:0.14.4" peerDependencies: ethers: ^5.7.0 - checksum: f702a3437f48a8d42c4bb35b8dd13671a168aadfc4e23ce723d62959220ccb6bf9c529c60331fe5b91afaa622147c6a37490551474fe3e35c06ac476524b5160 + checksum: 8/f702a3437f48a8d42c4bb35b8dd13671a168aadfc4e23ce723d62959220ccb6bf9c529c60331fe5b91afaa622147c6a37490551474fe3e35c06ac476524b5160 languageName: node linkType: hard