diff --git a/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-1696560894.json b/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-1696560894.json new file mode 100644 index 0000000000..2e1d05f765 --- /dev/null +++ b/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-1696560894.json @@ -0,0 +1,732 @@ +{ + "transactions": [ + { + "hash": "0xeb97b3c847c4f1cc9f37aeb2d738d3a50dc8ba0e71ff1fa4849ebc02e9d8b2dd", + "transactionType": "CREATE", + "contractName": "NFTDescriptorV2", + "contractAddress": "0x77a537bd9aCFe57dd64abb4076ed7257Aa3C6F4e", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0xc0d51", + "data": "0x610a0761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806322cc1ad61461004557806392ba0e901461006e575b600080fd5b610058610053366004610516565b610081565b604051610065919061060a565b60405180910390f35b61005861007c36600461061d565b610105565b60606100fc836001600160a01b0316635ea01e63846040518263ffffffff1660e01b81526004016100b29190610709565b600060405180830381865afa1580156100cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100f791908101906107b5565b61018a565b90505b92915050565b6060600061012f846040518060400160405280866060015181526020018660400151815250610081565b83516020808601516040519394506101629361014e9392869101610823565b60405160208183030381529060405261018a565b60405160200161017291906108ea565b60405160208183030381529060405291505092915050565b606081516000036101a957505060408051602081019091526000815290565b600060405180606001604052806040815260200161099260409139905060006003845160026101d89190610945565b6101e29190610958565b6101ed90600461097a565b905060006101fc826020610945565b67ffffffffffffffff8111156102145761021461030b565b6040519080825280601f01601f19166020018201604052801561023e576020820181803683370190505b509050818152600183018586518101602084015b818310156102aa576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f8116850151825350600101610252565b6003895106600181146102c457600281146102d5576102e1565b613d3d60f01b6001198301526102e1565b603d60f81b6000198301525b509398975050505050505050565b80356001600160a01b038116811461030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156103445761034461030b565b60405290565b6040516080810167ffffffffffffffff811182821017156103445761034461030b565b604051601f8201601f1916810167ffffffffffffffff811182821017156103965761039661030b565b604052919050565b600067ffffffffffffffff8211156103b8576103b861030b565b50601f01601f191660200190565b600082601f8301126103d757600080fd5b81356103ea6103e58261039e565b61036d565b8181528460208386010111156103ff57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261042d57600080fd5b8135602067ffffffffffffffff8083111561044a5761044a61030b565b8260051b61045983820161036d565b938452858101830193838101908886111561047357600080fd5b84880192505b8583101561050a578235848111156104915760008081fd5b88016040818b03601f19018113156104a95760008081fd5b6104b1610321565b87830135878111156104c35760008081fd5b6104d18d8a838701016103c6565b8252509082013590868211156104e75760008081fd5b6104f58c89848601016103c6565b81890152845250509184019190840190610479565b98975050505050505050565b6000806040838503121561052957600080fd5b610532836102ef565b9150602083013567ffffffffffffffff8082111561054f57600080fd5b908401906040828703121561056357600080fd5b61056b610321565b82358281111561057a57600080fd5b6105868882860161041c565b82525060208301358281111561059b57600080fd5b6105a7888286016103c6565b6020830152508093505050509250929050565b60005b838110156105d55781810151838201526020016105bd565b50506000910152565b600081518084526105f68160208601602086016105ba565b601f01601f19169290920160200192915050565b6020815260006100fc60208301846105de565b6000806040838503121561063057600080fd5b610639836102ef565b9150602083013567ffffffffffffffff8082111561065657600080fd5b908401906080828703121561066a57600080fd5b61067261034a565b82358281111561068157600080fd5b61068d888286016103c6565b8252506020830135828111156106a257600080fd5b6106ae888286016103c6565b6020830152506040830135828111156106c657600080fd5b6106d2888286016103c6565b6040830152506060830135828111156106ea57600080fd5b6106f68882860161041c565b6060830152508093505050509250929050565b600060208083526060830184516040808487015282825180855260808801915060808160051b8901019450858401935060005b8181101561078c57888603607f1901835284518051858852610760868901826105de565b91890151888303898b015291905061077881836105de565b97505050938601939186019160010161073c565b50505092860151858303601f190193860193909352506107ac81836105de565b95945050505050565b6000602082840312156107c757600080fd5b815167ffffffffffffffff8111156107de57600080fd5b8201601f810184136107ef57600080fd5b80516107fd6103e58261039e565b81815285602083850101111561081257600080fd5b6107ac8260208301602086016105ba565b683d913730b6b2911d1160b91b815283516000906108488160098501602089016105ba565b71111610113232b9b1b934b83a34b7b7111d1160711b600991840191820152845161087a81601b8401602089016105ba565b6c1116101134b6b0b3b2911d101160991b601b92909101918201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000602882015283516108ce8160428401602088016105ba565b61227d60f01b6042929091019182015260440195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161092281601d8501602087016105ba565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b808201808211156100ff576100ff61092f565b60008261097557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176100ff576100ff61092f56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212200f327ff17bf48cacf64ca8f1a16d52691eebc6e92f09d63d1e32b1e8fa11b18864736f6c63430008130033", + "nonce": "0x3d", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionType": "CREATE", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": null, + "arguments": [ + "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "0x81d94554A4b072BFcd850205f0c79e97c92aab56" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0x2ff759", + "value": "0x0", + "data": "0x60806040526002805460ff60a81b1916600160a81b1790553480156200002457600080fd5b5060405162002aae38038062002aae8339810160408190526200004791620000ed565b620000523362000084565b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556200012c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000ea57600080fd5b50565b600080604083850312156200010157600080fd5b82516200010e81620000d4565b60208401519092506200012181620000d4565b809150509250929050565b612972806200013c6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c806373ac736b11610151578063bc2d45fe116100c3578063dfe8478b11610087578063dfe8478b1461053b578063e6b1a3ae14610543578063e79c9ea614610556578063eba8180614610569578063f2fde38b14610571578063f4513a6a1461058457600080fd5b8063bc2d45fe146104d9578063bf61df1b146104ec578063cc2aa0911461050c578063cd2b825014610514578063ce2f4f531461052757600080fd5b80638bd54c06116101155780638bd54c06146104695780638da5cb5b1461047c57806391b7916a1461048d57806394f3df61146104a0578063aa5bf7d8146104b3578063b982d1b9146104c657600080fd5b806373ac736b146103f9578063773b97711461040c5780637ca942101461043057806387db11bd146104435780638ada6b0f1461045657600080fd5b80634531c0a8116101ea5780635a503f13116101ae5780635a503f131461039d5780635e70664c146103b0578063638ac270146103c35780636c0360eb146103d65780636e856531146103de578063715018a6146103f157600080fd5b80634531c0a814610354578063461fc5af1461035c5780634daebac21461036f57806355f804b31461037757806356d3163d1461038a57600080fd5b8063301bd28e11610231578063301bd28e146102da578063353c36a0146103055780633cfdafd3146103185780634479cef21461032b57806344cee73c1461034157600080fd5b8063010ecde71461026e57806304bde4dd146102835780630ba3db1a146102ac5780632a1d0769146102bf5780632ea04300146102c7575b600080fd5b61028161027c366004611cee565b610597565b005b610296610291366004611d0b565b61062d565b6040516102a39190611d74565b60405180910390f35b6102816102ba366004611e00565b6106a6565b610281610768565b6102966102d5366004611f50565b6107fa565b6001546102ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102a3565b610281610313366004611e00565b61092c565b610296610326366004611f6c565b6109b6565b610333610a0f565b6040519081526020016102a3565b61029661034f366004611d0b565b610a82565b610333610ab4565b61028161036a366004611f99565b610afe565b610333610bbd565b610281610385366004611fde565b610c07565b610281610398366004611cee565b610c7c565b6102966103ab366004611d0b565b610cfb565b6102816103be366004611fde565b610d2d565b6102966103d1366004611f6c565b610de9565b610296610e55565b6102816103ec366004611f99565b610ee3565b610281610f6b565b610281610407366004611f99565b610fa1565b60025461042090600160a01b900460ff1681565b60405190151581526020016102a3565b61029661043e366004611d0b565b611029565b61029661045136600461209c565b61105b565b6002546102ed906001600160a01b031681565b610281610477366004612118565b61119b565b6000546001600160a01b03166102ed565b61028161049b36600461214f565b61122a565b6102816104ae366004611e00565b6112b0565b6102816104c1366004611e00565b61133a565b6102966104d4366004611d0b565b6113c4565b6102966104e73660046121c3565b6113f6565b6104ff6104fa366004611f50565b61142a565b6040516102a391906121de565b610333611775565b610281610522366004611f99565b6117bf565b60025461042090600160a81b900460ff1681565b610281611847565b610281610551366004611cee565b6118c1565b610281610564366004612263565b611963565b6103336119eb565b61028161057f366004611cee565b611a35565b610281610592366004611cee565b611ad0565b6000546001600160a01b031633146105ca5760405162461bcd60e51b81526004016105c1906122b5565b60405180910390fd5b6001546040516301b9a39760e01b81526001600160a01b038381166004830152909116906301b9a397906024015b600060405180830381600087803b15801561061257600080fd5b505af1158015610626573d6000803e3d6000fd5b5050505050565b6001546040516304bde4dd60e01b8152600481018390526060916001600160a01b0316906304bde4dd906024015b600060405180830381865afa158015610678573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a0919081019061231a565b92915050565b6000546001600160a01b031633146106d05760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156106fa5760405162461bcd60e51b81526004016105c190612362565b6001546040516305d1ed8d60e11b81526001600160a01b0390911690630ba3db1a906107309087908790879087906004016123b5565b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146107925760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156107bc5760405162461bcd60e51b81526004016105c190612362565b6002805460ff60a01b1916600160a01b1790556040517f1680ee6d421f70ed6030d2fc4fcb50217a5dd617858d56562b119eca59172e5790600090a1565b6060600060405180604001604052806108128561142a565b815260015485516040516304bde4dd60e01b815265ffffffffffff90911660048201526020909201916001600160a01b03909116906304bde4dd90602401600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610895919081019061231a565b90526002546040516311660d6b60e11b81529192507377a537bd9acfe57dd64abb4076ed7257aa3c6f4e916322cc1ad6916108e0916001600160a01b03909116908590600401612468565b600060405180830381865af41580156108fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610925919081019061231a565b9392505050565b6000546001600160a01b031633146109565760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156109805760405162461bcd60e51b81526004016105c190612362565b6001546040516301a9e1b560e51b81526001600160a01b039091169063353c36a0906107309087908790879087906004016123b5565b600254606090600160a81b900460ff16156109dc576109d58383610de9565b90506106a0565b60036109e784611b2c565b6040516020016109f89291906124e8565b604051602081830303815290604052905092915050565b6001546040805163223ce77960e11b815290516000926001600160a01b031691634479cef29160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d919061256f565b905090565b600154604051631133b9cf60e21b8152600481018390526060916001600160a01b0316906344cee73c9060240161065b565b600154604080516308a6381560e31b815290516000926001600160a01b031691634531c0a89160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314610b285760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610b525760405162461bcd60e51b81526004016105c190612362565b60015460405163461fc5af60e01b81526001600160a01b039091169063461fc5af90610b8690869086908690600401612588565b600060405180830381600087803b158015610ba057600080fd5b505af1158015610bb4573d6000803e3d6000fd5b50505050505050565b600154604080516326d75d6160e11b815290516000926001600160a01b031691634daebac29160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016105c1906122b5565b6003610c3e828483612604565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610c709291906126c3565b60405180910390a15050565b6000546001600160a01b03163314610ca65760405162461bcd60e51b81526004016105c1906122b5565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f482cbbbcf912da3be80deb8503ae1e94c0b7d5d1d0ec0af3d9d6403e06e609ee906020015b60405180910390a150565b600154604051635a503f1360e01b8152600481018390526060916001600160a01b031690635a503f139060240161065b565b6000546001600160a01b03163314610d575760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610d815760405162461bcd60e51b81526004016105c190612362565b60015460405163179c199360e21b81526001600160a01b0390911690635e70664c90610db390859085906004016126c3565b600060405180830381600087803b158015610dcd57600080fd5b505af1158015610de1573d6000803e3d6000fd5b505050505050565b60606000610df684611b2c565b9050600081604051602001610e0b91906126d7565b6040516020818303038152906040529050600082604051602001610e2f9190612704565b6040516020818303038152906040529050610e4b82828761105b565b9695505050505050565b60038054610e62906124ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8e906124ae565b8015610edb5780601f10610eb057610100808354040283529160200191610edb565b820191906000526020600020905b815481529060010190602001808311610ebe57829003601f168201915b505050505081565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610f375760405162461bcd60e51b81526004016105c190612362565b600154604051636e85653160e01b81526001600160a01b0390911690636e85653190610b8690869086908690600401612588565b6000546001600160a01b03163314610f955760405162461bcd60e51b81526004016105c1906122b5565b610f9f6000611c34565b565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610ff55760405162461bcd60e51b81526004016105c190612362565b6001546040516373ac736b60e01b81526001600160a01b03909116906373ac736b90610b8690869086908690600401612588565b6001546040516307ca942160e41b8152600481018390526060916001600160a01b031690637ca942109060240161065b565b6040805160808101825284815260208101849052600154835183516304bde4dd60e01b815265ffffffffffff909116600482015260609360009392908301916001600160a01b03909116906304bde4dd90602401600060405180830381865afa1580156110cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110f4919081019061231a565b81526020016111028561142a565b905260025460405163092ba0e960e41b81529192507377a537bd9acfe57dd64abb4076ed7257aa3c6f4e916392ba0e909161114d916001600160a01b03909116908590600401612758565b600060405180830381865af415801561116a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611192919081019061231a565b95945050505050565b6000546001600160a01b031633146111c55760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156111ef5760405162461bcd60e51b81526004016105c190612362565b6001546040516345eaa60360e11b815260ff841660048201526001600160a01b03838116602483015290911690638bd54c0690604401610db3565b6000546001600160a01b031633146112545760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff161561127e5760405162461bcd60e51b81526004016105c190612362565b6001546040516348dbc8b560e11b81526001600160a01b03909116906391b7916a90610db390859085906004016127db565b6000546001600160a01b031633146112da5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156113045760405162461bcd60e51b81526004016105c190612362565b6001546040516394f3df6160e01b81526001600160a01b03909116906394f3df61906107309087908790879087906004016123b5565b6000546001600160a01b031633146113645760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff161561138e5760405162461bcd60e51b81526004016105c190612362565b60015460405163154b7efb60e31b81526001600160a01b039091169063aa5bf7d8906107309087908790879087906004016123b5565b60015460405163b982d1b960e01b8152600481018390526060916001600160a01b03169063b982d1b99060240161065b565b600154604051635e16a2ff60e11b815260ff831660048201526060916001600160a01b03169063bc2d45fe9060240161065b565b6001546020820151604051631133b9cf60e21b815265ffffffffffff90911660048201526060916000916001600160a01b03909116906344cee73c90602401600060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ae919081019061231a565b60015460408581015190516307ca942160e41b815265ffffffffffff90911660048201529192506000916001600160a01b0390911690637ca9421090602401600060405180830381865afa15801561150a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611532919081019061231a565b6001546060860151604051635a503f1360e01b815265ffffffffffff90911660048201529192506000916001600160a01b0390911690635a503f1390602401600060405180830381865afa15801561158e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115b6919081019061231a565b600154608087015160405163b982d1b960e01b815265ffffffffffff90911660048201529192506000916001600160a01b039091169063b982d1b990602401600060405180830381865afa158015611612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261163a919081019061231a565b60408051600480825260a0820190925291925060009190816020015b6040805180820190915260608082526020820152815260200190600190039081611656579050509050604051806040016040528086815260200161169987611c84565b815250816000815181106116af576116af612876565b602002602001018190525060405180604001604052808581526020016116d486611c84565b815250816001815181106116ea576116ea612876565b6020026020010181905250604051806040016040528084815260200161170f85611c84565b8152508160028151811061172557611725612876565b6020026020010181905250604051806040016040528083815260200161174a84611c84565b8152508160038151811061176057611760612876565b60209081029190910101529695505050505050565b6001546040805163cc2aa09160e01b815290516000926001600160a01b03169163cc2aa0919160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b031633146117e95760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156118135760405162461bcd60e51b81526004016105c190612362565b600154604051630cd2b82560e41b81526001600160a01b039091169063cd2b825090610b8690869086908690600401612588565b6000546001600160a01b031633146118715760405162461bcd60e51b81526004016105c1906122b5565b6002805460ff60a81b198116600160a81b9182900460ff1615918202179091556040518181527f360c3d72ee193226275b842f85231c259c934e85459fed80fa68e502ffa9dbde90602001610cf0565b6000546001600160a01b031633146118eb5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156119155760405162461bcd60e51b81526004016105c190612362565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f89382d75256b43b6826ad8d6cbd8e517eaf5e10f1ef4c8f123c9a25ac4529b5590602001610cf0565b6000546001600160a01b0316331461198d5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156119b75760405162461bcd60e51b81526004016105c190612362565b6001546040516373ce4f5360e11b81526001600160a01b039091169063e79c9ea690610b869086908690869060040161288c565b600154604080516375d40c0360e11b815290516000926001600160a01b03169163eba818069160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314611a5f5760405162461bcd60e51b81526004016105c1906122b5565b6001600160a01b038116611ac45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c1565b611acd81611c34565b50565b6000546001600160a01b03163314611afa5760405162461bcd60e51b81526004016105c1906122b5565b600154604051633955254b60e11b81526001600160a01b038381166004830152909116906372aa4a96906024016105f8565b606081600003611b535750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611b7d5780611b67816128bf565b9150611b769050600a836128ee565b9150611b57565b6000816001600160401b03811115611b9757611b97611e64565b6040519080825280601f01601f191660200182016040528015611bc1576020820181803683370190505b5090505b8415611c2c57611bd6600183612902565b9150611be3600a86612915565b611bee906030612929565b60f81b818381518110611c0357611c03612876565b60200101906001600160f81b031916908160001a905350611c25600a866128ee565b9450611bc5565b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60015481516060916001600160a01b03169063bc2d45fe908490600090611cad57611cad612876565b01602001516040516001600160e01b031960e084901b16815260f89190911c600482015260240161065b565b6001600160a01b0381168114611acd57600080fd5b600060208284031215611d0057600080fd5b813561092581611cd9565b600060208284031215611d1d57600080fd5b5035919050565b60005b83811015611d3f578181015183820152602001611d27565b50506000910152565b60008151808452611d60816020860160208601611d24565b601f01601f19169290920160200192915050565b6020815260006109256020830184611d48565b60008083601f840112611d9957600080fd5b5081356001600160401b03811115611db057600080fd5b602083019150836020828501011115611dc857600080fd5b9250929050565b803569ffffffffffffffffffff81168114611de957600080fd5b919050565b803561ffff81168114611de957600080fd5b60008060008060608587031215611e1657600080fd5b84356001600160401b03811115611e2c57600080fd5b611e3887828801611d87565b9095509350611e4b905060208601611dcf565b9150611e5960408601611dee565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611ea257611ea2611e64565b604052919050565b803565ffffffffffff81168114611de957600080fd5b600060a08284031215611ed257600080fd5b60405160a081018181106001600160401b0382111715611ef457611ef4611e64565b604052905080611f0383611eaa565b8152611f1160208401611eaa565b6020820152611f2260408401611eaa565b6040820152611f3360608401611eaa565b6060820152611f4460808401611eaa565b60808201525092915050565b600060a08284031215611f6257600080fd5b6109258383611ec0565b60008060c08385031215611f7f57600080fd5b82359150611f908460208501611ec0565b90509250929050565b600080600060608486031215611fae57600080fd5b8335611fb981611cd9565b9250611fc760208501611dcf565b9150611fd560408501611dee565b90509250925092565b60008060208385031215611ff157600080fd5b82356001600160401b0381111561200757600080fd5b61201385828601611d87565b90969095509350505050565b60006001600160401b0382111561203857612038611e64565b50601f01601f191660200190565b600082601f83011261205757600080fd5b813561206a6120658261201f565b611e7a565b81815284602083860101111561207f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060e084860312156120b157600080fd5b83356001600160401b03808211156120c857600080fd5b6120d487838801612046565b945060208601359150808211156120ea57600080fd5b506120f786828701612046565b925050611fd58560408601611ec0565b803560ff81168114611de957600080fd5b6000806040838503121561212b57600080fd5b61213483612107565b9150602083013561214481611cd9565b809150509250929050565b6000806020838503121561216257600080fd5b82356001600160401b038082111561217957600080fd5b818501915085601f83011261218d57600080fd5b81358181111561219c57600080fd5b8660208260051b85010111156121b157600080fd5b60209290920196919550909350505050565b6000602082840312156121d557600080fd5b61092582612107565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561225557888303603f190185528151805187855261222988860182611d48565b91890151858303868b01529190506122418183611d48565b968901969450505090860190600101612205565b509098975050505050505050565b60008060006040848603121561227857600080fd5b61228184612107565b925060208401356001600160401b0381111561229c57600080fd5b6122a886828701611d87565b9497909650939450505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006122f86120658461201f565b905082815283838301111561230c57600080fd5b610925836020830184611d24565b60006020828403121561232c57600080fd5b81516001600160401b0381111561234257600080fd5b8201601f8101841361235357600080fd5b611c2c848251602084016122ea565b60208082526010908201526f14185c9d1cc8185c99481b1bd8dad95960821b604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006123c960608301868861238c565b905069ffffffffffffffffffff8416602083015261ffff8316604083015295945050505050565b6000815180845260208085019450848260051b860182860160005b8581101561245b57838303895281516040815181865261242d82870182611d48565b915050868201519150848103878601526124478183611d48565b9a87019a945050509084019060010161240b565b5090979650505050505050565b60018060a01b0383168152604060208201526000825160408084015261249160808401826123f0565b90506020840151603f19848303016060850152610e4b8282611d48565b600181811c908216806124c257607f821691505b6020821081036124e257634e487b7160e01b600052602260045260246000fd5b50919050565b60008084546124f6816124ae565b6001828116801561250e576001811461252357612552565b60ff1984168752821515830287019450612552565b8860005260208060002060005b858110156125495781548a820152908401908201612530565b50505082870194505b505050508351612566818360208801611d24565b01949350505050565b60006020828403121561258157600080fd5b5051919050565b6001600160a01b0393909316835269ffffffffffffffffffff91909116602083015261ffff16604082015260600190565b601f8211156125ff57600081815260208120601f850160051c810160208610156125e05750805b601f850160051c820191505b81811015610de1578281556001016125ec565b505050565b6001600160401b0383111561261b5761261b611e64565b61262f8361262983546124ae565b836125b9565b6000601f841160018114612663576000851561264b5750838201355b600019600387901b1c1916600186901b178355610626565b600083815260209020601f19861690835b828110156126945786850135825560209485019460019092019101612674565b50868210156126b15760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081526000611c2c60208301848661238c565b6402737bab7160dd1b8152600082516126f7816005850160208701611d24565b9190910160050192915050565b6402737bab7160dd1b815260008251612724816005850160208701611d24565b7f2069732061206d656d626572206f6620746865204e6f756e732044414f0000006005939091019283015250602201919050565b60018060a01b038316815260406020820152600082516080604084015261278260c0840182611d48565b90506020840151603f19808584030160608601526127a08383611d48565b925060408601519150808584030160808601526127bd8383611d48565b925060608601519150808584030160a086015250610e4b82826123f0565b60208082528181018390526000906040600585901b8401810190840186845b8781101561286957868403603f190183528135368a9003601e1901811261282057600080fd5b890185810190356001600160401b0381111561283b57600080fd5b80360382131561284a57600080fd5b61285586828461238c565b9550505091840191908401906001016127fa565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60ff8416815260406020820152600061119260408301848661238c565b634e487b7160e01b600052601160045260246000fd5b6000600182016128d1576128d16128a9565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826128fd576128fd6128d8565b500490565b818103818111156106a0576106a06128a9565b600082612924576129246128d8565b500690565b808201808211156106a0576106a06128a956fea2646970667358221220ee2574a9cdfaf56e42035874323bef2c64e77668fe50ec681ce13a2e1224214264736f6c63430008130033000000000000000000000000921687c7a40a7f209100db16aa95f787f6b4e67700000000000000000000000081d94554a4b072bfcd850205f0c79e97c92aab56", + "nonce": "0x3e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x80f7c1d3c098915f19dbc0f1a179f0a2539997819b9bed4320c2bf65e53daa13", + "transactionType": "CREATE", + "contractName": "NounsArt", + "contractAddress": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "function": null, + "arguments": [ + "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "0xa2acee85Cd81c42BcAa1FeFA8eD2516b68872Dbe" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0x212e42", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b5060405162001d3c38038062001d3c83398101604081905262000034916200007f565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000be565b6001600160a01b03811681146200007c57600080fd5b50565b600080604083850312156200009357600080fd5b8251620000a08162000066565b6020840151909250620000b38162000066565b809150509250929050565b611c6e80620000ce6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806373ac736b11610125578063bc2d45fe116100ad578063e1d46ae61161007c578063e1d46ae614610463578063e73dd38314610476578063e79c9ea61461047e578063eba8180614610491578063fc362a701461049957600080fd5b8063bc2d45fe1461042d578063c64b2f5d14610440578063cc2aa09114610448578063cd2b82501461045057600080fd5b806394f3df61116100f457806394f3df61146103e0578063970b2271146103f3578063aa5bf7d8146103fd578063b982d1b914610410578063bb5e488c1461042357600080fd5b806373ac736b146103945780637ca94210146103a75780638bd54c06146103ba57806391b7916a146103cd57600080fd5b80634531c0a8116101a85780635c0910be116101775780635c0910be146103285780635e70664c146103325780636e8565311461034557806372aa4a961461035857806372c84d3f1461036b57600080fd5b80634531c0a8146102f2578063461fc5af146102fa5780634daebac21461030d5780635a503f131461031557600080fd5b8063303e74df116101ef578063303e74df14610287578063353c36a0146102b2578063368013dc146102c55780634479cef2146102cd57806344cee73c146102df57600080fd5b806301b9a3971461022157806304bde4dd146102365780630ba3db1a1461025f578063222a36d014610272575b600080fd5b61023461022f366004611433565b6104a3565b005b610249610244366004611450565b610530565b60405161025691906114b9565b60405180910390f35b61023461026d36600461153c565b6105dc565b61027a610653565b60405161025691906115a1565b60005461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b6102346102c036600461153c565b610706565b61027a610773565b600b545b604051908152602001610256565b6102496102ed366004611450565b61080d565b6002546102d1565b610234610308366004611629565b610820565b6007546102d1565b610249610323366004611450565b610895565b6005546102d19081565b61023461034036600461166e565b6108a2565b610234610353366004611629565b610908565b610234610366366004611433565b610974565b61029a6103793660046116c1565b6003602052600090815260409020546001600160a01b031681565b6102346103a2366004611629565b6109f9565b6102496103b5366004611450565b610a65565b6102346103c83660046116dc565b610a72565b6102346103db366004611713565b610af9565b6102346103ee36600461153c565b610b9e565b6009546102d19081565b61023461040b36600461153c565b610c0b565b61024961041e366004611450565b610c78565b6007546102d19081565b61024961043b3660046116c1565b610c85565b61027a610cee565b6009546102d1565b61023461045e366004611629565b610d88565b60015461029a906001600160a01b031681565b61027a610df4565b61023461048c366004611788565b610e8e565b6005546102d1565b600b546102d19081565b6000546001600160a01b031633146104ce57604051631b7c44cd60e01b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f6a470e5dd4b354979dc3b984575294975f737cb9ee3ae3cca949e998dbc7cee991015b60405180910390a15050565b6002818154811061054057600080fd5b90600052602060002001600091509050805461055b906117db565b80601f0160208091040260200160405190810160405280929190818152602001828054610587906117db565b80156105d45780601f106105a9576101008083540402835291602001916105d4565b820191906000526020600020905b8154815290600101906020018083116105b757829003601f168201915b505050505081565b6000546001600160a01b0316331461060757604051631b7c44cd60e01b815260040160405180910390fd5b610615600685858585610fb2565b60405161ffff821681527f2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e906020015b60405180910390a150505050565b60408051808201909152606081526000602082015260408051600480546060602082028401810185529383018181529293919284929091849160009085015b828210156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b505050508152602001600182015481525050905090565b6000546001600160a01b0316331461073157604051631b7c44cd60e01b815260040160405180910390fd5b61073f600a85858585610fb2565b60405161ffff821681527ffbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec90602001610645565b60408051808201909152606081526000602082015260408051600880546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b606061081a60048361102b565b92915050565b6000546001600160a01b0316331461084b57604051631b7c44cd60e01b815260040160405180910390fd5b6108586008848484611070565b60405161ffff821681527fe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62906020015b60405180910390a1505050565b606061081a60088361102b565b6000546001600160a01b031633146108cd57604051631b7c44cd60e01b815260040160405180910390fd5b6108d78282611175565b604051600181527f379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a7427690602001610524565b6000546001600160a01b0316331461093357604051631b7c44cd60e01b815260040160405180910390fd5b6109406006848484611070565b60405161ffff821681527f2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e90602001610888565b6000546001600160a01b0316331461099f57604051631b7c44cd60e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fad22bb31e9e983d055eeb60a03a1e572d4905254640c9ee3cd36c8d6431248309101610524565b6000546001600160a01b03163314610a2457604051631b7c44cd60e01b815260040160405180910390fd5b610a31600a848484611070565b60405161ffff821681527ffbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec90602001610888565b606061081a60068361102b565b6000546001600160a01b03163314610a9d57604051631b7c44cd60e01b815260040160405180910390fd5b60ff821660008181526003602090815260409182902080546001600160a01b0319166001600160a01b03861617905590519182527f3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f9101610524565b6000546001600160a01b03163314610b2457604051631b7c44cd60e01b815260040160405180910390fd5b60005b81811015610b6d57610b5b838383818110610b4457610b44611815565b9050602002810190610b56919061182b565b611175565b80610b6581611888565b915050610b27565b506040518181527f379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a7427690602001610524565b6000546001600160a01b03163314610bc957604051631b7c44cd60e01b815260040160405180910390fd5b610bd7600885858585610fb2565b60405161ffff821681527fe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d6290602001610645565b6000546001600160a01b03163314610c3657604051631b7c44cd60e01b815260040160405180910390fd5b610c44600485858585610fb2565b60405161ffff821681527feb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a90602001610645565b606061081a600a8361102b565b60ff81166000908152600360205260409020546060906001600160a01b031680610cc2576040516357dc2eb360e11b815260040160405180910390fd5b60ff8316600090815260036020526040902054610ce7906001600160a01b03166111b7565b9392505050565b60408051808201909152606081526000602082015260408051600680546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b6000546001600160a01b03163314610db357604051631b7c44cd60e01b815260040160405180910390fd5b610dc06004848484611070565b60405161ffff821681527feb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a90602001610888565b60408051808201909152606081526000602082015260408051600a80546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b6000546001600160a01b03163314610eb957604051631b7c44cd60e01b815260040160405180910390fd5b6000819003610edb576040516330939e2960e11b815260040160405180910390fd5b610ee66003826118a1565b151580610ef4575061030081115b15610f125760405163e233eccd60e01b815260040160405180910390fd5b610f5182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111d892505050565b60ff841660008181526003602090815260409182902080546001600160a01b0319166001600160a01b039590951694909417909355519081527f3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f9101610888565b6000839003610fd4576040516330d22c4360e21b815260040160405180910390fd5b600061101585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111d892505050565b905061102386828585611070565b505050505050565b606060008061103a8585611281565b9150915060006110498361132b565b905080828151811061105d5761105d611815565b6020026020010151935050505092915050565b816001600160501b031660000361109a5760405163cce3526160e01b815260040160405180910390fd5b8061ffff166000036110bf57604051635066be4560e11b815260040160405180910390fd5b6040805160608101825261ffff8084168083526001600160501b0380871660208086019182526001600160a01b03808b169787019788528b5460018181018e5560008e8152938420985198909101805494519951909216600160601b026bffffffffffffffffffffffff9990951662010000026bffffffffffffffffffffffff199094169790961696909617919091179590951617909255860180549192909161116a9084906118c3565b909155505050505050565b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace016111b2828483611932565b505050565b606061081a8260016111d3816001600160a01b0384163b6119f3565b6113f8565b600080826040516020016111ec9190611a06565b60405160208183030381529060405290506000816040516020016112109190611a2c565b60405160208183030381529060405290508051602082016000f092506001600160a01b03831661127a5760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b604482015260640160405180910390fd5b5050919050565b8154600090819081805b8281101561130a5760008782815481106112a7576112a7611815565b600091825260209091200180549091506112c59061ffff16846118c3565b8710156112e457806112d784896119f3565b9550955050505050611324565b80546112f49061ffff16846118c3565b925050808061130290611888565b91505061128b565b5060405163264a7c1360e01b815260040160405180910390fd5b9250929050565b805460609060009061134c90600160601b90046001600160a01b03166111b7565b600154845460405163132dbfbf60e11b81529293506000926001600160a01b039092169163265b7f7e916113949186916201000090046001600160501b031690600401611a60565b600060405180830381865afa1580156113b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113d99190810190611b20565b915050808060200190518101906113f09190611b75565b949350505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6001600160a01b038116811461143057600080fd5b50565b60006020828403121561144557600080fd5b8135610ce78161141b565b60006020828403121561146257600080fd5b5035919050565b60005b8381101561148457818101518382015260200161146c565b50506000910152565b600081518084526114a5816020860160208601611469565b601f01601f19169290920160200192915050565b602081526000610ce7602083018461148d565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b60208301915083602082850101111561132457600080fd5b80356001600160501b038116811461152557600080fd5b919050565b803561ffff8116811461152557600080fd5b6000806000806060858703121561155257600080fd5b843567ffffffffffffffff81111561156957600080fd5b611575878288016114cc565b909550935061158890506020860161150e565b91506115966040860161152a565b905092959194509250565b6000602080835260608084018551604080858801528282518085526080890191508684019450600093505b80841015611613578451805161ffff168352878101516001600160501b0316888401528301516001600160a01b0316838301529386019360019390930192908501906115cc565b5094909701519590960194909452509392505050565b60008060006060848603121561163e57600080fd5b83356116498161141b565b92506116576020850161150e565b91506116656040850161152a565b90509250925092565b6000806020838503121561168157600080fd5b823567ffffffffffffffff81111561169857600080fd5b6116a4858286016114cc565b90969095509350505050565b803560ff8116811461152557600080fd5b6000602082840312156116d357600080fd5b610ce7826116b0565b600080604083850312156116ef57600080fd5b6116f8836116b0565b915060208301356117088161141b565b809150509250929050565b6000806020838503121561172657600080fd5b823567ffffffffffffffff8082111561173e57600080fd5b818501915085601f83011261175257600080fd5b81358181111561176157600080fd5b8660208260051b850101111561177657600080fd5b60209290920196919550909350505050565b60008060006040848603121561179d57600080fd5b6117a6846116b0565b9250602084013567ffffffffffffffff8111156117c257600080fd5b6117ce868287016114cc565b9497909650939450505050565b600181811c908216806117ef57607f821691505b60208210810361180f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261184257600080fd5b83018035915067ffffffffffffffff82111561185d57600080fd5b60200191503681900382131561132457600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161189a5761189a611872565b5060010190565b6000826118be57634e487b7160e01b600052601260045260246000fd5b500690565b8082018082111561081a5761081a611872565b634e487b7160e01b600052604160045260246000fd5b601f8211156111b257600081815260208120601f850160051c810160208610156119135750805b601f850160051c820191505b818110156110235782815560010161191f565b67ffffffffffffffff83111561194a5761194a6118d6565b61195e8361195883546117db565b836118ec565b6000601f841160018114611992576000851561197a5750838201355b600019600387901b1c1916600186901b1783556119ec565b600083815260209020601f19861690835b828110156119c357868501358255602094850194600190920191016119a3565b50868210156119e05760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561081a5761081a611872565b6000815260008251611a1f816001850160208701611469565b9190910160010192915050565b6a600b5981380380925939f360a81b81528151600090611a5381600b850160208701611469565b91909101600b0192915050565b604081526000611a73604083018561148d565b90506001600160501b03831660208301529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611ab457611ab46118d6565b604052919050565b600082601f830112611acd57600080fd5b815167ffffffffffffffff811115611ae757611ae76118d6565b611afa601f8201601f1916602001611a8b565b818152846020838601011115611b0f57600080fd5b6113f0826020830160208701611469565b60008060408385031215611b3357600080fd5b8251600f8110611b4257600080fd5b602084015190925067ffffffffffffffff811115611b5f57600080fd5b611b6b85828601611abc565b9150509250929050565b60006020808385031215611b8857600080fd5b825167ffffffffffffffff80821115611ba057600080fd5b818501915085601f830112611bb457600080fd5b815181811115611bc657611bc66118d6565b8060051b611bd5858201611a8b565b9182528381018501918581019089841115611bef57600080fd5b86860192505b83831015611c2b57825185811115611c0d5760008081fd5b611c1b8b89838a0101611abc565b8352509186019190860190611bf5565b999850505050505050505056fea2646970667358221220af309f0f23a6e4cfcbe9adbeaeba7331a7447a6a51cf61f3dc3ae8b45c13bc2064736f6c6343000813003300000000000000000000000025ff2fde7df1a433e09749c952f7e09ad3c27951000000000000000000000000a2acee85cd81c42bcaa1fefa8ed2516b68872dbe", + "nonce": "0x3f", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "setPalettePointer(uint8,address)", + "arguments": [ + "0", + "0x8Af724552FC1394eEFa3178C4c4671A75eebb0b0" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x134cb", + "value": "0x0", + "data": "0x8bd54c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000008af724552fc1394eefa3178c4c4671a75eebb0b0", + "nonce": "0x40", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addManyBackgrounds(string[])", + "arguments": [ + "[d5d7e1, e1d7d5]" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x235a5", + "value": "0x0", + "data": "0x91b7916a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000006643564376531000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066531643764350000000000000000000000000000000000000000000000000000", + "nonce": "0x41", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addBodiesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x43baF99B8D976eDC19278F33f4DD8D554A651aB0", + "3904", + "30" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x248f5", + "value": "0x0", + "data": "0xcd2b825000000000000000000000000043baf99b8d976edc19278f33f4dd8d554a651ab00000000000000000000000000000000000000000000000000000000000000f40000000000000000000000000000000000000000000000000000000000000001e", + "nonce": "0x42", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0xf614F9405ce1C6D13Ac3B066f0fa1233A2a00c3a", + "19104", + "137" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x248f5", + "value": "0x0", + "data": "0x6e856531000000000000000000000000f614f9405ce1c6d13ac3b066f0fa1233a2a00c3a0000000000000000000000000000000000000000000000000000000000004aa00000000000000000000000000000000000000000000000000000000000000089", + "nonce": "0x43", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x11fb1e00a27D080Ab1506Ca50AFf316e2107082c", + "672", + "3" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16fde", + "value": "0x0", + "data": "0x6e85653100000000000000000000000011fb1e00a27d080ab1506ca50aff316e2107082c00000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003", + "nonce": "0x44", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x3f47Dbc40c86Cb184dFe8885670fe2D48C5497a8", + "352", + "2" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x18594", + "value": "0x0", + "data": "0x6e8565310000000000000000000000003f47dbc40c86cb184dfe8885670fe2d48c5497a800000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0x45", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x457852249b25075A6966859227DF58d4483c43F5", + "60352", + "234" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x227ef", + "value": "0x0", + "data": "0x461fc5af000000000000000000000000457852249b25075a6966859227df58d4483c43f5000000000000000000000000000000000000000000000000000000000000ebc000000000000000000000000000000000000000000000000000000000000000ea", + "nonce": "0x46", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x880799829d13b87bDeDAaDB7eEAE43a780319295", + "1952", + "8" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f69", + "value": "0x0", + "data": "0x461fc5af000000000000000000000000880799829d13b87bdedaadb7eeae43a78031929500000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000008", + "nonce": "0x47", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x4074B6fe88754B7Ec7386c8B14b3C74909e97502", + "2112", + "8" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f69", + "value": "0x0", + "data": "0x461fc5af0000000000000000000000004074b6fe88754b7ec7386c8b14b3c74909e9750200000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000008", + "nonce": "0x48", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addGlassesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x6169438064D1C866B1F236C6e1e185FA74df8234", + "3488", + "21" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x227c2", + "value": "0x0", + "data": "0x73ac736b0000000000000000000000006169438064d1c866b1f236c6e1e185fa74df82340000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000015", + "nonce": "0x49", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addGlassesFromPointer(address,uint80,uint16)", + "arguments": [ + "0xBD3325d0f7102e71C1F80e8d7eb4AF590Be4d810", + "384", + "2" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f3a", + "value": "0x0", + "data": "0x73ac736b000000000000000000000000bd3325d0f7102e71c1f80e8d7eb4af590be4d81000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0x4a", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xeb97b3c847c4f1cc9f37aeb2d738d3a50dc8ba0e71ff1fa4849ebc02e9d8b2dd", + "transactionIndex": "0x8", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x1c11e2", + "gasUsed": "0x945f8", + "contractAddress": "0x77a537bd9aCFe57dd64abb4076ed7257Aa3C6F4e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionIndex": "0x9", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x40fa39", + "gasUsed": "0x24e857", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "logs": [ + { + "address": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000fd987985df942b5412e55bf10b612bc4a5191aa0" + ], + "data": "0x", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionIndex": "0x9", + "logIndex": "0x38", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00800000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000000080000000000000000000000000000020000000000000000000000000000000000800000000000000000001000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x80f7c1d3c098915f19dbc0f1a179f0a2539997819b9bed4320c2bf65e53daa13", + "transactionIndex": "0xa", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x5a821d", + "gasUsed": "0x1987e4", + "contractAddress": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionIndex": "0xb", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x5b61ad", + "gasUsed": "0xdf90", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionIndex": "0xb", + "logIndex": "0x39", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionIndex": "0xd", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x606156", + "gasUsed": "0x19985", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a74276" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionIndex": "0xd", + "logIndex": "0x47", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000040000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionIndex": "0xe", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x61f14f", + "gasUsed": "0x18ff9", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xeb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000001e", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionIndex": "0xe", + "logIndex": "0x48", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionIndex": "0xf", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x638148", + "gasUsed": "0x18ff9", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000089", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionIndex": "0xf", + "logIndex": "0x49", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionIndex": "0x10", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x648b9d", + "gasUsed": "0x10a55", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000003", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionIndex": "0x10", + "logIndex": "0x4a", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionIndex": "0x11", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6595fe", + "gasUsed": "0x10a61", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionIndex": "0x11", + "logIndex": "0x4b", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionIndex": "0x12", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x672596", + "gasUsed": "0x18f98", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ea", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionIndex": "0x12", + "logIndex": "0x4c", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionIndex": "0x13", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x682f96", + "gasUsed": "0x10a00", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000008", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionIndex": "0x13", + "logIndex": "0x4d", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionIndex": "0x14", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x693996", + "gasUsed": "0x10a00", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000008", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionIndex": "0x14", + "logIndex": "0x4e", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionIndex": "0x15", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6ac90d", + "gasUsed": "0x18f77", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xfbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000015", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionIndex": "0x15", + "logIndex": "0x4f", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000100000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionIndex": "0x16", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6bd2ec", + "gasUsed": "0x109df", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xfbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionIndex": "0x16", + "logIndex": "0x50", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000100000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + } + ], + "libraries": [ + "contracts/libs/NFTDescriptorV2.sol:NFTDescriptorV2:0x77a537bd9acfe57dd64abb4076ed7257aa3c6f4e" + ], + "pending": [], + "returns": {}, + "timestamp": 1696560894, + "chain": 1, + "multi": false, + "commit": "d9c55013" +} diff --git a/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-latest.json b/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-latest.json new file mode 100644 index 0000000000..2e1d05f765 --- /dev/null +++ b/packages/nouns-contracts/broadcast/UpgradeDescriptorV2PopulateArtFromExisting.s.sol/1/run-latest.json @@ -0,0 +1,732 @@ +{ + "transactions": [ + { + "hash": "0xeb97b3c847c4f1cc9f37aeb2d738d3a50dc8ba0e71ff1fa4849ebc02e9d8b2dd", + "transactionType": "CREATE", + "contractName": "NFTDescriptorV2", + "contractAddress": "0x77a537bd9aCFe57dd64abb4076ed7257Aa3C6F4e", + "function": null, + "arguments": null, + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0xc0d51", + "data": "0x610a0761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806322cc1ad61461004557806392ba0e901461006e575b600080fd5b610058610053366004610516565b610081565b604051610065919061060a565b60405180910390f35b61005861007c36600461061d565b610105565b60606100fc836001600160a01b0316635ea01e63846040518263ffffffff1660e01b81526004016100b29190610709565b600060405180830381865afa1580156100cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100f791908101906107b5565b61018a565b90505b92915050565b6060600061012f846040518060400160405280866060015181526020018660400151815250610081565b83516020808601516040519394506101629361014e9392869101610823565b60405160208183030381529060405261018a565b60405160200161017291906108ea565b60405160208183030381529060405291505092915050565b606081516000036101a957505060408051602081019091526000815290565b600060405180606001604052806040815260200161099260409139905060006003845160026101d89190610945565b6101e29190610958565b6101ed90600461097a565b905060006101fc826020610945565b67ffffffffffffffff8111156102145761021461030b565b6040519080825280601f01601f19166020018201604052801561023e576020820181803683370190505b509050818152600183018586518101602084015b818310156102aa576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f8116850151825350600101610252565b6003895106600181146102c457600281146102d5576102e1565b613d3d60f01b6001198301526102e1565b603d60f81b6000198301525b509398975050505050505050565b80356001600160a01b038116811461030657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156103445761034461030b565b60405290565b6040516080810167ffffffffffffffff811182821017156103445761034461030b565b604051601f8201601f1916810167ffffffffffffffff811182821017156103965761039661030b565b604052919050565b600067ffffffffffffffff8211156103b8576103b861030b565b50601f01601f191660200190565b600082601f8301126103d757600080fd5b81356103ea6103e58261039e565b61036d565b8181528460208386010111156103ff57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261042d57600080fd5b8135602067ffffffffffffffff8083111561044a5761044a61030b565b8260051b61045983820161036d565b938452858101830193838101908886111561047357600080fd5b84880192505b8583101561050a578235848111156104915760008081fd5b88016040818b03601f19018113156104a95760008081fd5b6104b1610321565b87830135878111156104c35760008081fd5b6104d18d8a838701016103c6565b8252509082013590868211156104e75760008081fd5b6104f58c89848601016103c6565b81890152845250509184019190840190610479565b98975050505050505050565b6000806040838503121561052957600080fd5b610532836102ef565b9150602083013567ffffffffffffffff8082111561054f57600080fd5b908401906040828703121561056357600080fd5b61056b610321565b82358281111561057a57600080fd5b6105868882860161041c565b82525060208301358281111561059b57600080fd5b6105a7888286016103c6565b6020830152508093505050509250929050565b60005b838110156105d55781810151838201526020016105bd565b50506000910152565b600081518084526105f68160208601602086016105ba565b601f01601f19169290920160200192915050565b6020815260006100fc60208301846105de565b6000806040838503121561063057600080fd5b610639836102ef565b9150602083013567ffffffffffffffff8082111561065657600080fd5b908401906080828703121561066a57600080fd5b61067261034a565b82358281111561068157600080fd5b61068d888286016103c6565b8252506020830135828111156106a257600080fd5b6106ae888286016103c6565b6020830152506040830135828111156106c657600080fd5b6106d2888286016103c6565b6040830152506060830135828111156106ea57600080fd5b6106f68882860161041c565b6060830152508093505050509250929050565b600060208083526060830184516040808487015282825180855260808801915060808160051b8901019450858401935060005b8181101561078c57888603607f1901835284518051858852610760868901826105de565b91890151888303898b015291905061077881836105de565b97505050938601939186019160010161073c565b50505092860151858303601f190193860193909352506107ac81836105de565b95945050505050565b6000602082840312156107c757600080fd5b815167ffffffffffffffff8111156107de57600080fd5b8201601f810184136107ef57600080fd5b80516107fd6103e58261039e565b81815285602083850101111561081257600080fd5b6107ac8260208301602086016105ba565b683d913730b6b2911d1160b91b815283516000906108488160098501602089016105ba565b71111610113232b9b1b934b83a34b7b7111d1160711b600991840191820152845161087a81601b8401602089016105ba565b6c1116101134b6b0b3b2911d101160991b601b92909101918201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000602882015283516108ce8160428401602088016105ba565b61227d60f01b6042929091019182015260440195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161092281601d8501602087016105ba565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b808201808211156100ff576100ff61092f565b60008261097557634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176100ff576100ff61092f56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212200f327ff17bf48cacf64ca8f1a16d52691eebc6e92f09d63d1e32b1e8fa11b18864736f6c63430008130033", + "nonce": "0x3d", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionType": "CREATE", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": null, + "arguments": [ + "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "0x81d94554A4b072BFcd850205f0c79e97c92aab56" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0x2ff759", + "value": "0x0", + "data": "0x60806040526002805460ff60a81b1916600160a81b1790553480156200002457600080fd5b5060405162002aae38038062002aae8339810160408190526200004791620000ed565b620000523362000084565b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556200012c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000ea57600080fd5b50565b600080604083850312156200010157600080fd5b82516200010e81620000d4565b60208401519092506200012181620000d4565b809150509250929050565b612972806200013c6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c806373ac736b11610151578063bc2d45fe116100c3578063dfe8478b11610087578063dfe8478b1461053b578063e6b1a3ae14610543578063e79c9ea614610556578063eba8180614610569578063f2fde38b14610571578063f4513a6a1461058457600080fd5b8063bc2d45fe146104d9578063bf61df1b146104ec578063cc2aa0911461050c578063cd2b825014610514578063ce2f4f531461052757600080fd5b80638bd54c06116101155780638bd54c06146104695780638da5cb5b1461047c57806391b7916a1461048d57806394f3df61146104a0578063aa5bf7d8146104b3578063b982d1b9146104c657600080fd5b806373ac736b146103f9578063773b97711461040c5780637ca942101461043057806387db11bd146104435780638ada6b0f1461045657600080fd5b80634531c0a8116101ea5780635a503f13116101ae5780635a503f131461039d5780635e70664c146103b0578063638ac270146103c35780636c0360eb146103d65780636e856531146103de578063715018a6146103f157600080fd5b80634531c0a814610354578063461fc5af1461035c5780634daebac21461036f57806355f804b31461037757806356d3163d1461038a57600080fd5b8063301bd28e11610231578063301bd28e146102da578063353c36a0146103055780633cfdafd3146103185780634479cef21461032b57806344cee73c1461034157600080fd5b8063010ecde71461026e57806304bde4dd146102835780630ba3db1a146102ac5780632a1d0769146102bf5780632ea04300146102c7575b600080fd5b61028161027c366004611cee565b610597565b005b610296610291366004611d0b565b61062d565b6040516102a39190611d74565b60405180910390f35b6102816102ba366004611e00565b6106a6565b610281610768565b6102966102d5366004611f50565b6107fa565b6001546102ed906001600160a01b031681565b6040516001600160a01b0390911681526020016102a3565b610281610313366004611e00565b61092c565b610296610326366004611f6c565b6109b6565b610333610a0f565b6040519081526020016102a3565b61029661034f366004611d0b565b610a82565b610333610ab4565b61028161036a366004611f99565b610afe565b610333610bbd565b610281610385366004611fde565b610c07565b610281610398366004611cee565b610c7c565b6102966103ab366004611d0b565b610cfb565b6102816103be366004611fde565b610d2d565b6102966103d1366004611f6c565b610de9565b610296610e55565b6102816103ec366004611f99565b610ee3565b610281610f6b565b610281610407366004611f99565b610fa1565b60025461042090600160a01b900460ff1681565b60405190151581526020016102a3565b61029661043e366004611d0b565b611029565b61029661045136600461209c565b61105b565b6002546102ed906001600160a01b031681565b610281610477366004612118565b61119b565b6000546001600160a01b03166102ed565b61028161049b36600461214f565b61122a565b6102816104ae366004611e00565b6112b0565b6102816104c1366004611e00565b61133a565b6102966104d4366004611d0b565b6113c4565b6102966104e73660046121c3565b6113f6565b6104ff6104fa366004611f50565b61142a565b6040516102a391906121de565b610333611775565b610281610522366004611f99565b6117bf565b60025461042090600160a81b900460ff1681565b610281611847565b610281610551366004611cee565b6118c1565b610281610564366004612263565b611963565b6103336119eb565b61028161057f366004611cee565b611a35565b610281610592366004611cee565b611ad0565b6000546001600160a01b031633146105ca5760405162461bcd60e51b81526004016105c1906122b5565b60405180910390fd5b6001546040516301b9a39760e01b81526001600160a01b038381166004830152909116906301b9a397906024015b600060405180830381600087803b15801561061257600080fd5b505af1158015610626573d6000803e3d6000fd5b5050505050565b6001546040516304bde4dd60e01b8152600481018390526060916001600160a01b0316906304bde4dd906024015b600060405180830381865afa158015610678573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a0919081019061231a565b92915050565b6000546001600160a01b031633146106d05760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156106fa5760405162461bcd60e51b81526004016105c190612362565b6001546040516305d1ed8d60e11b81526001600160a01b0390911690630ba3db1a906107309087908790879087906004016123b5565b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146107925760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156107bc5760405162461bcd60e51b81526004016105c190612362565b6002805460ff60a01b1916600160a01b1790556040517f1680ee6d421f70ed6030d2fc4fcb50217a5dd617858d56562b119eca59172e5790600090a1565b6060600060405180604001604052806108128561142a565b815260015485516040516304bde4dd60e01b815265ffffffffffff90911660048201526020909201916001600160a01b03909116906304bde4dd90602401600060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610895919081019061231a565b90526002546040516311660d6b60e11b81529192507377a537bd9acfe57dd64abb4076ed7257aa3c6f4e916322cc1ad6916108e0916001600160a01b03909116908590600401612468565b600060405180830381865af41580156108fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610925919081019061231a565b9392505050565b6000546001600160a01b031633146109565760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156109805760405162461bcd60e51b81526004016105c190612362565b6001546040516301a9e1b560e51b81526001600160a01b039091169063353c36a0906107309087908790879087906004016123b5565b600254606090600160a81b900460ff16156109dc576109d58383610de9565b90506106a0565b60036109e784611b2c565b6040516020016109f89291906124e8565b604051602081830303815290604052905092915050565b6001546040805163223ce77960e11b815290516000926001600160a01b031691634479cef29160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d919061256f565b905090565b600154604051631133b9cf60e21b8152600481018390526060916001600160a01b0316906344cee73c9060240161065b565b600154604080516308a6381560e31b815290516000926001600160a01b031691634531c0a89160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314610b285760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610b525760405162461bcd60e51b81526004016105c190612362565b60015460405163461fc5af60e01b81526001600160a01b039091169063461fc5af90610b8690869086908690600401612588565b600060405180830381600087803b158015610ba057600080fd5b505af1158015610bb4573d6000803e3d6000fd5b50505050505050565b600154604080516326d75d6160e11b815290516000926001600160a01b031691634daebac29160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314610c315760405162461bcd60e51b81526004016105c1906122b5565b6003610c3e828483612604565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610c709291906126c3565b60405180910390a15050565b6000546001600160a01b03163314610ca65760405162461bcd60e51b81526004016105c1906122b5565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f482cbbbcf912da3be80deb8503ae1e94c0b7d5d1d0ec0af3d9d6403e06e609ee906020015b60405180910390a150565b600154604051635a503f1360e01b8152600481018390526060916001600160a01b031690635a503f139060240161065b565b6000546001600160a01b03163314610d575760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610d815760405162461bcd60e51b81526004016105c190612362565b60015460405163179c199360e21b81526001600160a01b0390911690635e70664c90610db390859085906004016126c3565b600060405180830381600087803b158015610dcd57600080fd5b505af1158015610de1573d6000803e3d6000fd5b505050505050565b60606000610df684611b2c565b9050600081604051602001610e0b91906126d7565b6040516020818303038152906040529050600082604051602001610e2f9190612704565b6040516020818303038152906040529050610e4b82828761105b565b9695505050505050565b60038054610e62906124ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8e906124ae565b8015610edb5780601f10610eb057610100808354040283529160200191610edb565b820191906000526020600020905b815481529060010190602001808311610ebe57829003601f168201915b505050505081565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610f375760405162461bcd60e51b81526004016105c190612362565b600154604051636e85653160e01b81526001600160a01b0390911690636e85653190610b8690869086908690600401612588565b6000546001600160a01b03163314610f955760405162461bcd60e51b81526004016105c1906122b5565b610f9f6000611c34565b565b6000546001600160a01b03163314610fcb5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff1615610ff55760405162461bcd60e51b81526004016105c190612362565b6001546040516373ac736b60e01b81526001600160a01b03909116906373ac736b90610b8690869086908690600401612588565b6001546040516307ca942160e41b8152600481018390526060916001600160a01b031690637ca942109060240161065b565b6040805160808101825284815260208101849052600154835183516304bde4dd60e01b815265ffffffffffff909116600482015260609360009392908301916001600160a01b03909116906304bde4dd90602401600060405180830381865afa1580156110cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110f4919081019061231a565b81526020016111028561142a565b905260025460405163092ba0e960e41b81529192507377a537bd9acfe57dd64abb4076ed7257aa3c6f4e916392ba0e909161114d916001600160a01b03909116908590600401612758565b600060405180830381865af415801561116a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611192919081019061231a565b95945050505050565b6000546001600160a01b031633146111c55760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156111ef5760405162461bcd60e51b81526004016105c190612362565b6001546040516345eaa60360e11b815260ff841660048201526001600160a01b03838116602483015290911690638bd54c0690604401610db3565b6000546001600160a01b031633146112545760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff161561127e5760405162461bcd60e51b81526004016105c190612362565b6001546040516348dbc8b560e11b81526001600160a01b03909116906391b7916a90610db390859085906004016127db565b6000546001600160a01b031633146112da5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156113045760405162461bcd60e51b81526004016105c190612362565b6001546040516394f3df6160e01b81526001600160a01b03909116906394f3df61906107309087908790879087906004016123b5565b6000546001600160a01b031633146113645760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff161561138e5760405162461bcd60e51b81526004016105c190612362565b60015460405163154b7efb60e31b81526001600160a01b039091169063aa5bf7d8906107309087908790879087906004016123b5565b60015460405163b982d1b960e01b8152600481018390526060916001600160a01b03169063b982d1b99060240161065b565b600154604051635e16a2ff60e11b815260ff831660048201526060916001600160a01b03169063bc2d45fe9060240161065b565b6001546020820151604051631133b9cf60e21b815265ffffffffffff90911660048201526060916000916001600160a01b03909116906344cee73c90602401600060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ae919081019061231a565b60015460408581015190516307ca942160e41b815265ffffffffffff90911660048201529192506000916001600160a01b0390911690637ca9421090602401600060405180830381865afa15801561150a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611532919081019061231a565b6001546060860151604051635a503f1360e01b815265ffffffffffff90911660048201529192506000916001600160a01b0390911690635a503f1390602401600060405180830381865afa15801561158e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115b6919081019061231a565b600154608087015160405163b982d1b960e01b815265ffffffffffff90911660048201529192506000916001600160a01b039091169063b982d1b990602401600060405180830381865afa158015611612573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261163a919081019061231a565b60408051600480825260a0820190925291925060009190816020015b6040805180820190915260608082526020820152815260200190600190039081611656579050509050604051806040016040528086815260200161169987611c84565b815250816000815181106116af576116af612876565b602002602001018190525060405180604001604052808581526020016116d486611c84565b815250816001815181106116ea576116ea612876565b6020026020010181905250604051806040016040528084815260200161170f85611c84565b8152508160028151811061172557611725612876565b6020026020010181905250604051806040016040528083815260200161174a84611c84565b8152508160038151811061176057611760612876565b60209081029190910101529695505050505050565b6001546040805163cc2aa09160e01b815290516000926001600160a01b03169163cc2aa0919160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b031633146117e95760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156118135760405162461bcd60e51b81526004016105c190612362565b600154604051630cd2b82560e41b81526001600160a01b039091169063cd2b825090610b8690869086908690600401612588565b6000546001600160a01b031633146118715760405162461bcd60e51b81526004016105c1906122b5565b6002805460ff60a81b198116600160a81b9182900460ff1615918202179091556040518181527f360c3d72ee193226275b842f85231c259c934e85459fed80fa68e502ffa9dbde90602001610cf0565b6000546001600160a01b031633146118eb5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156119155760405162461bcd60e51b81526004016105c190612362565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f89382d75256b43b6826ad8d6cbd8e517eaf5e10f1ef4c8f123c9a25ac4529b5590602001610cf0565b6000546001600160a01b0316331461198d5760405162461bcd60e51b81526004016105c1906122b5565b600254600160a01b900460ff16156119b75760405162461bcd60e51b81526004016105c190612362565b6001546040516373ce4f5360e11b81526001600160a01b039091169063e79c9ea690610b869086908690869060040161288c565b600154604080516375d40c0360e11b815290516000926001600160a01b03169163eba818069160048083019260209291908290030181865afa158015610a59573d6000803e3d6000fd5b6000546001600160a01b03163314611a5f5760405162461bcd60e51b81526004016105c1906122b5565b6001600160a01b038116611ac45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c1565b611acd81611c34565b50565b6000546001600160a01b03163314611afa5760405162461bcd60e51b81526004016105c1906122b5565b600154604051633955254b60e11b81526001600160a01b038381166004830152909116906372aa4a96906024016105f8565b606081600003611b535750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611b7d5780611b67816128bf565b9150611b769050600a836128ee565b9150611b57565b6000816001600160401b03811115611b9757611b97611e64565b6040519080825280601f01601f191660200182016040528015611bc1576020820181803683370190505b5090505b8415611c2c57611bd6600183612902565b9150611be3600a86612915565b611bee906030612929565b60f81b818381518110611c0357611c03612876565b60200101906001600160f81b031916908160001a905350611c25600a866128ee565b9450611bc5565b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60015481516060916001600160a01b03169063bc2d45fe908490600090611cad57611cad612876565b01602001516040516001600160e01b031960e084901b16815260f89190911c600482015260240161065b565b6001600160a01b0381168114611acd57600080fd5b600060208284031215611d0057600080fd5b813561092581611cd9565b600060208284031215611d1d57600080fd5b5035919050565b60005b83811015611d3f578181015183820152602001611d27565b50506000910152565b60008151808452611d60816020860160208601611d24565b601f01601f19169290920160200192915050565b6020815260006109256020830184611d48565b60008083601f840112611d9957600080fd5b5081356001600160401b03811115611db057600080fd5b602083019150836020828501011115611dc857600080fd5b9250929050565b803569ffffffffffffffffffff81168114611de957600080fd5b919050565b803561ffff81168114611de957600080fd5b60008060008060608587031215611e1657600080fd5b84356001600160401b03811115611e2c57600080fd5b611e3887828801611d87565b9095509350611e4b905060208601611dcf565b9150611e5960408601611dee565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611ea257611ea2611e64565b604052919050565b803565ffffffffffff81168114611de957600080fd5b600060a08284031215611ed257600080fd5b60405160a081018181106001600160401b0382111715611ef457611ef4611e64565b604052905080611f0383611eaa565b8152611f1160208401611eaa565b6020820152611f2260408401611eaa565b6040820152611f3360608401611eaa565b6060820152611f4460808401611eaa565b60808201525092915050565b600060a08284031215611f6257600080fd5b6109258383611ec0565b60008060c08385031215611f7f57600080fd5b82359150611f908460208501611ec0565b90509250929050565b600080600060608486031215611fae57600080fd5b8335611fb981611cd9565b9250611fc760208501611dcf565b9150611fd560408501611dee565b90509250925092565b60008060208385031215611ff157600080fd5b82356001600160401b0381111561200757600080fd5b61201385828601611d87565b90969095509350505050565b60006001600160401b0382111561203857612038611e64565b50601f01601f191660200190565b600082601f83011261205757600080fd5b813561206a6120658261201f565b611e7a565b81815284602083860101111561207f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060e084860312156120b157600080fd5b83356001600160401b03808211156120c857600080fd5b6120d487838801612046565b945060208601359150808211156120ea57600080fd5b506120f786828701612046565b925050611fd58560408601611ec0565b803560ff81168114611de957600080fd5b6000806040838503121561212b57600080fd5b61213483612107565b9150602083013561214481611cd9565b809150509250929050565b6000806020838503121561216257600080fd5b82356001600160401b038082111561217957600080fd5b818501915085601f83011261218d57600080fd5b81358181111561219c57600080fd5b8660208260051b85010111156121b157600080fd5b60209290920196919550909350505050565b6000602082840312156121d557600080fd5b61092582612107565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561225557888303603f190185528151805187855261222988860182611d48565b91890151858303868b01529190506122418183611d48565b968901969450505090860190600101612205565b509098975050505050505050565b60008060006040848603121561227857600080fd5b61228184612107565b925060208401356001600160401b0381111561229c57600080fd5b6122a886828701611d87565b9497909650939450505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006122f86120658461201f565b905082815283838301111561230c57600080fd5b610925836020830184611d24565b60006020828403121561232c57600080fd5b81516001600160401b0381111561234257600080fd5b8201601f8101841361235357600080fd5b611c2c848251602084016122ea565b60208082526010908201526f14185c9d1cc8185c99481b1bd8dad95960821b604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006123c960608301868861238c565b905069ffffffffffffffffffff8416602083015261ffff8316604083015295945050505050565b6000815180845260208085019450848260051b860182860160005b8581101561245b57838303895281516040815181865261242d82870182611d48565b915050868201519150848103878601526124478183611d48565b9a87019a945050509084019060010161240b565b5090979650505050505050565b60018060a01b0383168152604060208201526000825160408084015261249160808401826123f0565b90506020840151603f19848303016060850152610e4b8282611d48565b600181811c908216806124c257607f821691505b6020821081036124e257634e487b7160e01b600052602260045260246000fd5b50919050565b60008084546124f6816124ae565b6001828116801561250e576001811461252357612552565b60ff1984168752821515830287019450612552565b8860005260208060002060005b858110156125495781548a820152908401908201612530565b50505082870194505b505050508351612566818360208801611d24565b01949350505050565b60006020828403121561258157600080fd5b5051919050565b6001600160a01b0393909316835269ffffffffffffffffffff91909116602083015261ffff16604082015260600190565b601f8211156125ff57600081815260208120601f850160051c810160208610156125e05750805b601f850160051c820191505b81811015610de1578281556001016125ec565b505050565b6001600160401b0383111561261b5761261b611e64565b61262f8361262983546124ae565b836125b9565b6000601f841160018114612663576000851561264b5750838201355b600019600387901b1c1916600186901b178355610626565b600083815260209020601f19861690835b828110156126945786850135825560209485019460019092019101612674565b50868210156126b15760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081526000611c2c60208301848661238c565b6402737bab7160dd1b8152600082516126f7816005850160208701611d24565b9190910160050192915050565b6402737bab7160dd1b815260008251612724816005850160208701611d24565b7f2069732061206d656d626572206f6620746865204e6f756e732044414f0000006005939091019283015250602201919050565b60018060a01b038316815260406020820152600082516080604084015261278260c0840182611d48565b90506020840151603f19808584030160608601526127a08383611d48565b925060408601519150808584030160808601526127bd8383611d48565b925060608601519150808584030160a086015250610e4b82826123f0565b60208082528181018390526000906040600585901b8401810190840186845b8781101561286957868403603f190183528135368a9003601e1901811261282057600080fd5b890185810190356001600160401b0381111561283b57600080fd5b80360382131561284a57600080fd5b61285586828461238c565b9550505091840191908401906001016127fa565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60ff8416815260406020820152600061119260408301848661238c565b634e487b7160e01b600052601160045260246000fd5b6000600182016128d1576128d16128a9565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826128fd576128fd6128d8565b500490565b818103818111156106a0576106a06128a9565b600082612924576129246128d8565b500690565b808201808211156106a0576106a06128a956fea2646970667358221220ee2574a9cdfaf56e42035874323bef2c64e77668fe50ec681ce13a2e1224214264736f6c63430008130033000000000000000000000000921687c7a40a7f209100db16aa95f787f6b4e67700000000000000000000000081d94554a4b072bfcd850205f0c79e97c92aab56", + "nonce": "0x3e", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x80f7c1d3c098915f19dbc0f1a179f0a2539997819b9bed4320c2bf65e53daa13", + "transactionType": "CREATE", + "contractName": "NounsArt", + "contractAddress": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "function": null, + "arguments": [ + "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "0xa2acee85Cd81c42BcAa1FeFA8eD2516b68872Dbe" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "gas": "0x212e42", + "value": "0x0", + "data": "0x60806040523480156200001157600080fd5b5060405162001d3c38038062001d3c83398101604081905262000034916200007f565b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000be565b6001600160a01b03811681146200007c57600080fd5b50565b600080604083850312156200009357600080fd5b8251620000a08162000066565b6020840151909250620000b38162000066565b809150509250929050565b611c6e80620000ce6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806373ac736b11610125578063bc2d45fe116100ad578063e1d46ae61161007c578063e1d46ae614610463578063e73dd38314610476578063e79c9ea61461047e578063eba8180614610491578063fc362a701461049957600080fd5b8063bc2d45fe1461042d578063c64b2f5d14610440578063cc2aa09114610448578063cd2b82501461045057600080fd5b806394f3df61116100f457806394f3df61146103e0578063970b2271146103f3578063aa5bf7d8146103fd578063b982d1b914610410578063bb5e488c1461042357600080fd5b806373ac736b146103945780637ca94210146103a75780638bd54c06146103ba57806391b7916a146103cd57600080fd5b80634531c0a8116101a85780635c0910be116101775780635c0910be146103285780635e70664c146103325780636e8565311461034557806372aa4a961461035857806372c84d3f1461036b57600080fd5b80634531c0a8146102f2578063461fc5af146102fa5780634daebac21461030d5780635a503f131461031557600080fd5b8063303e74df116101ef578063303e74df14610287578063353c36a0146102b2578063368013dc146102c55780634479cef2146102cd57806344cee73c146102df57600080fd5b806301b9a3971461022157806304bde4dd146102365780630ba3db1a1461025f578063222a36d014610272575b600080fd5b61023461022f366004611433565b6104a3565b005b610249610244366004611450565b610530565b60405161025691906114b9565b60405180910390f35b61023461026d36600461153c565b6105dc565b61027a610653565b60405161025691906115a1565b60005461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b6102346102c036600461153c565b610706565b61027a610773565b600b545b604051908152602001610256565b6102496102ed366004611450565b61080d565b6002546102d1565b610234610308366004611629565b610820565b6007546102d1565b610249610323366004611450565b610895565b6005546102d19081565b61023461034036600461166e565b6108a2565b610234610353366004611629565b610908565b610234610366366004611433565b610974565b61029a6103793660046116c1565b6003602052600090815260409020546001600160a01b031681565b6102346103a2366004611629565b6109f9565b6102496103b5366004611450565b610a65565b6102346103c83660046116dc565b610a72565b6102346103db366004611713565b610af9565b6102346103ee36600461153c565b610b9e565b6009546102d19081565b61023461040b36600461153c565b610c0b565b61024961041e366004611450565b610c78565b6007546102d19081565b61024961043b3660046116c1565b610c85565b61027a610cee565b6009546102d1565b61023461045e366004611629565b610d88565b60015461029a906001600160a01b031681565b61027a610df4565b61023461048c366004611788565b610e8e565b6005546102d1565b600b546102d19081565b6000546001600160a01b031633146104ce57604051631b7c44cd60e01b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f6a470e5dd4b354979dc3b984575294975f737cb9ee3ae3cca949e998dbc7cee991015b60405180910390a15050565b6002818154811061054057600080fd5b90600052602060002001600091509050805461055b906117db565b80601f0160208091040260200160405190810160405280929190818152602001828054610587906117db565b80156105d45780601f106105a9576101008083540402835291602001916105d4565b820191906000526020600020905b8154815290600101906020018083116105b757829003601f168201915b505050505081565b6000546001600160a01b0316331461060757604051631b7c44cd60e01b815260040160405180910390fd5b610615600685858585610fb2565b60405161ffff821681527f2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e906020015b60405180910390a150505050565b60408051808201909152606081526000602082015260408051600480546060602082028401810185529383018181529293919284929091849160009085015b828210156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b505050508152602001600182015481525050905090565b6000546001600160a01b0316331461073157604051631b7c44cd60e01b815260040160405180910390fd5b61073f600a85858585610fb2565b60405161ffff821681527ffbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec90602001610645565b60408051808201909152606081526000602082015260408051600880546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b606061081a60048361102b565b92915050565b6000546001600160a01b0316331461084b57604051631b7c44cd60e01b815260040160405180910390fd5b6108586008848484611070565b60405161ffff821681527fe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62906020015b60405180910390a1505050565b606061081a60088361102b565b6000546001600160a01b031633146108cd57604051631b7c44cd60e01b815260040160405180910390fd5b6108d78282611175565b604051600181527f379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a7427690602001610524565b6000546001600160a01b0316331461093357604051631b7c44cd60e01b815260040160405180910390fd5b6109406006848484611070565b60405161ffff821681527f2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e90602001610888565b6000546001600160a01b0316331461099f57604051631b7c44cd60e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fad22bb31e9e983d055eeb60a03a1e572d4905254640c9ee3cd36c8d6431248309101610524565b6000546001600160a01b03163314610a2457604051631b7c44cd60e01b815260040160405180910390fd5b610a31600a848484611070565b60405161ffff821681527ffbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec90602001610888565b606061081a60068361102b565b6000546001600160a01b03163314610a9d57604051631b7c44cd60e01b815260040160405180910390fd5b60ff821660008181526003602090815260409182902080546001600160a01b0319166001600160a01b03861617905590519182527f3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f9101610524565b6000546001600160a01b03163314610b2457604051631b7c44cd60e01b815260040160405180910390fd5b60005b81811015610b6d57610b5b838383818110610b4457610b44611815565b9050602002810190610b56919061182b565b611175565b80610b6581611888565b915050610b27565b506040518181527f379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a7427690602001610524565b6000546001600160a01b03163314610bc957604051631b7c44cd60e01b815260040160405180910390fd5b610bd7600885858585610fb2565b60405161ffff821681527fe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d6290602001610645565b6000546001600160a01b03163314610c3657604051631b7c44cd60e01b815260040160405180910390fd5b610c44600485858585610fb2565b60405161ffff821681527feb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a90602001610645565b606061081a600a8361102b565b60ff81166000908152600360205260409020546060906001600160a01b031680610cc2576040516357dc2eb360e11b815260040160405180910390fd5b60ff8316600090815260036020526040902054610ce7906001600160a01b03166111b7565b9392505050565b60408051808201909152606081526000602082015260408051600680546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b6000546001600160a01b03163314610db357604051631b7c44cd60e01b815260040160405180910390fd5b610dc06004848484611070565b60405161ffff821681527feb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a90602001610888565b60408051808201909152606081526000602082015260408051600a80546020810283016060908101855293830181815292939192849290918491600090850182156106ef576000848152602090819020604080516060810182529185015461ffff811683526201000081046001600160501b031683850152600160601b90046001600160a01b031690820152825260019092019101610692565b6000546001600160a01b03163314610eb957604051631b7c44cd60e01b815260040160405180910390fd5b6000819003610edb576040516330939e2960e11b815260040160405180910390fd5b610ee66003826118a1565b151580610ef4575061030081115b15610f125760405163e233eccd60e01b815260040160405180910390fd5b610f5182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111d892505050565b60ff841660008181526003602090815260409182902080546001600160a01b0319166001600160a01b039590951694909417909355519081527f3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f9101610888565b6000839003610fd4576040516330d22c4360e21b815260040160405180910390fd5b600061101585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111d892505050565b905061102386828585611070565b505050505050565b606060008061103a8585611281565b9150915060006110498361132b565b905080828151811061105d5761105d611815565b6020026020010151935050505092915050565b816001600160501b031660000361109a5760405163cce3526160e01b815260040160405180910390fd5b8061ffff166000036110bf57604051635066be4560e11b815260040160405180910390fd5b6040805160608101825261ffff8084168083526001600160501b0380871660208086019182526001600160a01b03808b169787019788528b5460018181018e5560008e8152938420985198909101805494519951909216600160601b026bffffffffffffffffffffffff9990951662010000026bffffffffffffffffffffffff199094169790961696909617919091179590951617909255860180549192909161116a9084906118c3565b909155505050505050565b600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace016111b2828483611932565b505050565b606061081a8260016111d3816001600160a01b0384163b6119f3565b6113f8565b600080826040516020016111ec9190611a06565b60405160208183030381529060405290506000816040516020016112109190611a2c565b60405160208183030381529060405290508051602082016000f092506001600160a01b03831661127a5760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b604482015260640160405180910390fd5b5050919050565b8154600090819081805b8281101561130a5760008782815481106112a7576112a7611815565b600091825260209091200180549091506112c59061ffff16846118c3565b8710156112e457806112d784896119f3565b9550955050505050611324565b80546112f49061ffff16846118c3565b925050808061130290611888565b91505061128b565b5060405163264a7c1360e01b815260040160405180910390fd5b9250929050565b805460609060009061134c90600160601b90046001600160a01b03166111b7565b600154845460405163132dbfbf60e11b81529293506000926001600160a01b039092169163265b7f7e916113949186916201000090046001600160501b031690600401611a60565b600060405180830381865afa1580156113b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113d99190810190611b20565b915050808060200190518101906113f09190611b75565b949350505050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b6001600160a01b038116811461143057600080fd5b50565b60006020828403121561144557600080fd5b8135610ce78161141b565b60006020828403121561146257600080fd5b5035919050565b60005b8381101561148457818101518382015260200161146c565b50506000910152565b600081518084526114a5816020860160208601611469565b601f01601f19169290920160200192915050565b602081526000610ce7602083018461148d565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b60208301915083602082850101111561132457600080fd5b80356001600160501b038116811461152557600080fd5b919050565b803561ffff8116811461152557600080fd5b6000806000806060858703121561155257600080fd5b843567ffffffffffffffff81111561156957600080fd5b611575878288016114cc565b909550935061158890506020860161150e565b91506115966040860161152a565b905092959194509250565b6000602080835260608084018551604080858801528282518085526080890191508684019450600093505b80841015611613578451805161ffff168352878101516001600160501b0316888401528301516001600160a01b0316838301529386019360019390930192908501906115cc565b5094909701519590960194909452509392505050565b60008060006060848603121561163e57600080fd5b83356116498161141b565b92506116576020850161150e565b91506116656040850161152a565b90509250925092565b6000806020838503121561168157600080fd5b823567ffffffffffffffff81111561169857600080fd5b6116a4858286016114cc565b90969095509350505050565b803560ff8116811461152557600080fd5b6000602082840312156116d357600080fd5b610ce7826116b0565b600080604083850312156116ef57600080fd5b6116f8836116b0565b915060208301356117088161141b565b809150509250929050565b6000806020838503121561172657600080fd5b823567ffffffffffffffff8082111561173e57600080fd5b818501915085601f83011261175257600080fd5b81358181111561176157600080fd5b8660208260051b850101111561177657600080fd5b60209290920196919550909350505050565b60008060006040848603121561179d57600080fd5b6117a6846116b0565b9250602084013567ffffffffffffffff8111156117c257600080fd5b6117ce868287016114cc565b9497909650939450505050565b600181811c908216806117ef57607f821691505b60208210810361180f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261184257600080fd5b83018035915067ffffffffffffffff82111561185d57600080fd5b60200191503681900382131561132457600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161189a5761189a611872565b5060010190565b6000826118be57634e487b7160e01b600052601260045260246000fd5b500690565b8082018082111561081a5761081a611872565b634e487b7160e01b600052604160045260246000fd5b601f8211156111b257600081815260208120601f850160051c810160208610156119135750805b601f850160051c820191505b818110156110235782815560010161191f565b67ffffffffffffffff83111561194a5761194a6118d6565b61195e8361195883546117db565b836118ec565b6000601f841160018114611992576000851561197a5750838201355b600019600387901b1c1916600186901b1783556119ec565b600083815260209020601f19861690835b828110156119c357868501358255602094850194600190920191016119a3565b50868210156119e05760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561081a5761081a611872565b6000815260008251611a1f816001850160208701611469565b9190910160010192915050565b6a600b5981380380925939f360a81b81528151600090611a5381600b850160208701611469565b91909101600b0192915050565b604081526000611a73604083018561148d565b90506001600160501b03831660208301529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611ab457611ab46118d6565b604052919050565b600082601f830112611acd57600080fd5b815167ffffffffffffffff811115611ae757611ae76118d6565b611afa601f8201601f1916602001611a8b565b818152846020838601011115611b0f57600080fd5b6113f0826020830160208701611469565b60008060408385031215611b3357600080fd5b8251600f8110611b4257600080fd5b602084015190925067ffffffffffffffff811115611b5f57600080fd5b611b6b85828601611abc565b9150509250929050565b60006020808385031215611b8857600080fd5b825167ffffffffffffffff80821115611ba057600080fd5b818501915085601f830112611bb457600080fd5b815181811115611bc657611bc66118d6565b8060051b611bd5858201611a8b565b9182528381018501918581019089841115611bef57600080fd5b86860192505b83831015611c2b57825185811115611c0d5760008081fd5b611c1b8b89838a0101611abc565b8352509186019190860190611bf5565b999850505050505050505056fea2646970667358221220af309f0f23a6e4cfcbe9adbeaeba7331a7447a6a51cf61f3dc3ae8b45c13bc2064736f6c6343000813003300000000000000000000000025ff2fde7df1a433e09749c952f7e09ad3c27951000000000000000000000000a2acee85cd81c42bcaa1fefa8ed2516b68872dbe", + "nonce": "0x3f", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "setPalettePointer(uint8,address)", + "arguments": [ + "0", + "0x8Af724552FC1394eEFa3178C4c4671A75eebb0b0" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x134cb", + "value": "0x0", + "data": "0x8bd54c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000008af724552fc1394eefa3178c4c4671a75eebb0b0", + "nonce": "0x40", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addManyBackgrounds(string[])", + "arguments": [ + "[d5d7e1, e1d7d5]" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x235a5", + "value": "0x0", + "data": "0x91b7916a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000006643564376531000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066531643764350000000000000000000000000000000000000000000000000000", + "nonce": "0x41", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addBodiesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x43baF99B8D976eDC19278F33f4DD8D554A651aB0", + "3904", + "30" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x248f5", + "value": "0x0", + "data": "0xcd2b825000000000000000000000000043baf99b8d976edc19278f33f4dd8d554a651ab00000000000000000000000000000000000000000000000000000000000000f40000000000000000000000000000000000000000000000000000000000000001e", + "nonce": "0x42", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0xf614F9405ce1C6D13Ac3B066f0fa1233A2a00c3a", + "19104", + "137" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x248f5", + "value": "0x0", + "data": "0x6e856531000000000000000000000000f614f9405ce1c6d13ac3b066f0fa1233a2a00c3a0000000000000000000000000000000000000000000000000000000000004aa00000000000000000000000000000000000000000000000000000000000000089", + "nonce": "0x43", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x11fb1e00a27D080Ab1506Ca50AFf316e2107082c", + "672", + "3" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16fde", + "value": "0x0", + "data": "0x6e85653100000000000000000000000011fb1e00a27d080ab1506ca50aff316e2107082c00000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003", + "nonce": "0x44", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addAccessoriesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x3f47Dbc40c86Cb184dFe8885670fe2D48C5497a8", + "352", + "2" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x18594", + "value": "0x0", + "data": "0x6e8565310000000000000000000000003f47dbc40c86cb184dfe8885670fe2d48c5497a800000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0x45", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x457852249b25075A6966859227DF58d4483c43F5", + "60352", + "234" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x227ef", + "value": "0x0", + "data": "0x461fc5af000000000000000000000000457852249b25075a6966859227df58d4483c43f5000000000000000000000000000000000000000000000000000000000000ebc000000000000000000000000000000000000000000000000000000000000000ea", + "nonce": "0x46", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x880799829d13b87bDeDAaDB7eEAE43a780319295", + "1952", + "8" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f69", + "value": "0x0", + "data": "0x461fc5af000000000000000000000000880799829d13b87bdedaadb7eeae43a78031929500000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000008", + "nonce": "0x47", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addHeadsFromPointer(address,uint80,uint16)", + "arguments": [ + "0x4074B6fe88754B7Ec7386c8B14b3C74909e97502", + "2112", + "8" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f69", + "value": "0x0", + "data": "0x461fc5af0000000000000000000000004074b6fe88754b7ec7386c8b14b3c74909e9750200000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000008", + "nonce": "0x48", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addGlassesFromPointer(address,uint80,uint16)", + "arguments": [ + "0x6169438064D1C866B1F236C6e1e185FA74df8234", + "3488", + "21" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x227c2", + "value": "0x0", + "data": "0x73ac736b0000000000000000000000006169438064d1c866b1f236c6e1e185fa74df82340000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000015", + "nonce": "0x49", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionType": "CALL", + "contractName": "NounsDescriptorV2", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "function": "addGlassesFromPointer(address,uint80,uint16)", + "arguments": [ + "0xBD3325d0f7102e71C1F80e8d7eb4AF590Be4d810", + "384", + "2" + ], + "transaction": { + "type": "0x02", + "from": "0xfd987985df942b5412e55bf10b612bc4a5191aa0", + "to": "0x25ff2fde7df1a433e09749c952f7e09ad3c27951", + "gas": "0x16f3a", + "value": "0x0", + "data": "0x73ac736b000000000000000000000000bd3325d0f7102e71c1f80e8d7eb4af590be4d81000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000002", + "nonce": "0x4a", + "accessList": [] + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "transactionHash": "0xeb97b3c847c4f1cc9f37aeb2d738d3a50dc8ba0e71ff1fa4849ebc02e9d8b2dd", + "transactionIndex": "0x8", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x1c11e2", + "gasUsed": "0x945f8", + "contractAddress": "0x77a537bd9aCFe57dd64abb4076ed7257Aa3C6F4e", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionIndex": "0x9", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x40fa39", + "gasUsed": "0x24e857", + "contractAddress": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "logs": [ + { + "address": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000fd987985df942b5412e55bf10b612bc4a5191aa0" + ], + "data": "0x", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x37dfb800a8132cf5ce79836b2547089ee32d965fad76abcc1a4a925966f9db29", + "transactionIndex": "0x9", + "logIndex": "0x38", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00800000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000000080000000000000000000000000000020000000000000000000000000000000000800000000000000000001000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x80f7c1d3c098915f19dbc0f1a179f0a2539997819b9bed4320c2bf65e53daa13", + "transactionIndex": "0xa", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": null, + "cumulativeGasUsed": "0x5a821d", + "gasUsed": "0x1987e4", + "contractAddress": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "logs": [], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionIndex": "0xb", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x5b61ad", + "gasUsed": "0xdf90", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x3469f6a12aa5e5edc4ea6e284300f2621e073fce4374d4673ded8f2ea7c18b4f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xeab4265750fba89f78e9904feade359dee0a3c9c6dc3d522a01890220ee5b08d", + "transactionIndex": "0xb", + "logIndex": "0x39", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionIndex": "0xd", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x606156", + "gasUsed": "0x19985", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x379976e1287af3c12aafa34c6a1a61b0cbcb9dce67b3b220ece3b474a4a74276" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xacb0bf5d40a4981f2741736d642a5cfb84828961699cbb8f536c7883504ea552", + "transactionIndex": "0xd", + "logIndex": "0x47", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000040000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionIndex": "0xe", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x61f14f", + "gasUsed": "0x18ff9", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xeb09489df35ba64745f59c5a7efc6df50d432df8cfc3708deb7075e3c8a4f76a" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000001e", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xa1b018b525992062d9a28c5b46020a3c4da5e9d02f895aaf058c1c3ed04dfed5", + "transactionIndex": "0xe", + "logIndex": "0x48", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionIndex": "0xf", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x638148", + "gasUsed": "0x18ff9", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000089", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x6a33e033ee3c9d48918ca12ce01a825dfe1284a1bd81794efe6baf2500b1768f", + "transactionIndex": "0xf", + "logIndex": "0x49", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionIndex": "0x10", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x648b9d", + "gasUsed": "0x10a55", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000003", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x47c37fbe6296b5ea2f404fed3f6a430ae521b6bbea9acff342f311fa695d6cd5", + "transactionIndex": "0x10", + "logIndex": "0x4a", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionIndex": "0x11", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6595fe", + "gasUsed": "0x10a61", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0x2d0f2274b911553cd85de198b828dfe7ef8309c67e0b7674c045bcb0e5b5ba2e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xae320cfb13f28f6a64f7b02920c7ee059e017e58b09471e4fed82180cec530b9", + "transactionIndex": "0x11", + "logIndex": "0x4b", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionIndex": "0x12", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x672596", + "gasUsed": "0x18f98", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ea", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xa608ba5004fc87af199ece732b962b52b94aa97fea8f4cf1f9ab5c5329e849b8", + "transactionIndex": "0x12", + "logIndex": "0x4c", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionIndex": "0x13", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x682f96", + "gasUsed": "0x10a00", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000008", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xf7def9f8ab55cb460ec2efb74108ab5d1b3e8825f005b2d373e9d20357a9a116", + "transactionIndex": "0x13", + "logIndex": "0x4d", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionIndex": "0x14", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x693996", + "gasUsed": "0x10a00", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xe74953497d5d03198c809f0f4a324019e503e87fef8e2081636487743ae29d62" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000008", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x572a17151f0b72dbdb2100c53b0a7eef1427e4f472b63aa1c3e99744ca14961b", + "transactionIndex": "0x14", + "logIndex": "0x4e", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionIndex": "0x15", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6ac90d", + "gasUsed": "0x18f77", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xfbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000015", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0x0389a83735cb798b806ea18f3e5c887a580963fe764345916b1bc07d599078a1", + "transactionIndex": "0x15", + "logIndex": "0x4f", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000100000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + }, + { + "transactionHash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionIndex": "0x16", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "from": "0xfD987985DF942B5412e55bF10b612Bc4a5191aA0", + "to": "0x25fF2FdE7df1A433E09749C952f7e09aD3C27951", + "cumulativeGasUsed": "0x6bd2ec", + "gasUsed": "0x109df", + "contractAddress": null, + "logs": [ + { + "address": "0x921687c7A40a7F209100Db16AA95f787f6B4E677", + "topics": [ + "0xfbb56d0e73d76edc5867b20b68684b671a625696e50d8c985c2830fd1566aaec" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000002", + "blockHash": "0xb56056b62ee71f8f4cdd54809b366bcdaa216fe2ef6c14b3adb5010a85649a43", + "blockNumber": "0x1170fe3", + "transactionHash": "0xe0ada0b98d5eeda164b01f81ef4bbe32e0be48fd2b2d22850cd0dfef2c9d8605", + "transactionIndex": "0x16", + "logIndex": "0x50", + "removed": false + } + ], + "status": "0x1", + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000400000000100000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "effectiveGasPrice": "0x20a4d58a8" + } + ], + "libraries": [ + "contracts/libs/NFTDescriptorV2.sol:NFTDescriptorV2:0x77a537bd9acfe57dd64abb4076ed7257aa3c6f4e" + ], + "pending": [], + "returns": {}, + "timestamp": 1696560894, + "chain": 1, + "multi": false, + "commit": "d9c55013" +} diff --git a/packages/nouns-contracts/contracts/NounsArt.sol b/packages/nouns-contracts/contracts/NounsArt.sol index 99c4e32f6b..c29711f5df 100644 --- a/packages/nouns-contracts/contracts/NounsArt.sol +++ b/packages/nouns-contracts/contracts/NounsArt.sol @@ -330,10 +330,38 @@ contract NounsArt is INounsArt { /** * @notice Get the number of available Noun `backgrounds`. */ - function backgroundsCount() public view override returns (uint256) { + function backgroundCount() external view returns (uint256) { return backgrounds.length; } + /** + * @notice Get the number of available Noun `bodies`. + */ + function bodyCount() external view returns (uint256) { + return bodiesTrait.storedImagesCount; + } + + /** + * @notice Get the number of available Noun `accessories`. + */ + function accessoryCount() external view returns (uint256) { + return accessoriesTrait.storedImagesCount; + } + + /** + * @notice Get the number of available Noun `heads`. + */ + function headCount() external view returns (uint256) { + return headsTrait.storedImagesCount; + } + + /** + * @notice Get the number of available Noun `glasses`. + */ + function glassesCount() external view returns (uint256) { + return glassesTrait.storedImagesCount; + } + /** * @notice Get a head image bytes (RLE-encoded). */ diff --git a/packages/nouns-contracts/contracts/NounsDescriptorV2.sol b/packages/nouns-contracts/contracts/NounsDescriptorV2.sol index 026db3dc69..e8c88c4edf 100644 --- a/packages/nouns-contracts/contracts/NounsDescriptorV2.sol +++ b/packages/nouns-contracts/contracts/NounsDescriptorV2.sol @@ -103,35 +103,35 @@ contract NounsDescriptorV2 is INounsDescriptorV2, Ownable { * @notice Get the number of available Noun `backgrounds`. */ function backgroundCount() external view override returns (uint256) { - return art.backgroundsCount(); + return art.backgroundCount(); } /** * @notice Get the number of available Noun `bodies`. */ function bodyCount() external view override returns (uint256) { - return art.getBodiesTrait().storedImagesCount; + return art.bodyCount(); } /** * @notice Get the number of available Noun `accessories`. */ function accessoryCount() external view override returns (uint256) { - return art.getAccessoriesTrait().storedImagesCount; + return art.accessoryCount(); } /** * @notice Get the number of available Noun `heads`. */ function headCount() external view override returns (uint256) { - return art.getHeadsTrait().storedImagesCount; + return art.headCount(); } /** * @notice Get the number of available Noun `glasses`. */ function glassesCount() external view override returns (uint256) { - return art.getGlassesTrait().storedImagesCount; + return art.glassesCount(); } /** diff --git a/packages/nouns-contracts/contracts/interfaces/INounsArt.sol b/packages/nouns-contracts/contracts/interfaces/INounsArt.sol index 1005677264..92ba778b51 100644 --- a/packages/nouns-contracts/contracts/interfaces/INounsArt.sol +++ b/packages/nouns-contracts/contracts/interfaces/INounsArt.sol @@ -17,7 +17,6 @@ pragma solidity ^0.8.6; -import { Inflate } from '../libs/Inflate.sol'; import { IInflator } from './IInflator.sol'; interface INounsArt { @@ -130,7 +129,15 @@ interface INounsArt { uint16 imageCount ) external; - function backgroundsCount() external view returns (uint256); + function backgroundCount() external view returns (uint256); + + function bodyCount() external view returns (uint256); + + function accessoryCount() external view returns (uint256); + + function headCount() external view returns (uint256); + + function glassesCount() external view returns (uint256); function backgrounds(uint256 index) external view returns (string memory); diff --git a/packages/nouns-contracts/script/UpgradeDescriptorV2PopulateArtFromExisting.s.sol b/packages/nouns-contracts/script/UpgradeDescriptorV2PopulateArtFromExisting.s.sol new file mode 100644 index 0000000000..347dd6a26c --- /dev/null +++ b/packages/nouns-contracts/script/UpgradeDescriptorV2PopulateArtFromExisting.s.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.15; + +import 'forge-std/Script.sol'; +import { NounsDescriptorV2 } from '../contracts/NounsDescriptorV2.sol'; +import { ISVGRenderer } from '../contracts/interfaces/ISVGRenderer.sol'; +import { IInflator } from '../contracts/interfaces/IInflator.sol'; +import { INounsArt } from '../contracts/interfaces/INounsArt.sol'; +import { NounsArt } from '../contracts/NounsArt.sol'; + +contract UpgradeDescriptorV2PopulateArtFromExisting is Script { + NounsDescriptorV2 public constant EXISTING_DESCRIPTOR = NounsDescriptorV2(0x6229c811D04501523C6058bfAAc29c91bb586268); + ISVGRenderer public constant EXISTING_RENDERER = ISVGRenderer(0x81d94554A4b072BFcd850205f0c79e97c92aab56); + IInflator public constant EXISTING_INFLATOR = IInflator(0xa2acee85Cd81c42BcAa1FeFA8eD2516b68872Dbe); + NounsArt public constant EXISTING_ART = NounsArt(0x48A7C62e2560d1336869D6550841222942768C49); + + function run() external { + uint256 upgraderKey = vm.envUint('UPGRADER_KEY'); + address upgrader = vm.addr(upgraderKey); + + address palettePointer = EXISTING_ART.palettesPointers(0); + + uint256 backgroundCount = EXISTING_DESCRIPTOR.backgroundCount(); + string[] memory backgrounds = new string[](backgroundCount); + for (uint256 i = 0; i < backgroundCount; i++) { + backgrounds[i] = EXISTING_ART.backgrounds(i); + } + + INounsArt.Trait memory bodies = EXISTING_ART.getBodiesTrait(); + INounsArt.Trait memory accessories = EXISTING_ART.getAccessoriesTrait(); + INounsArt.Trait memory heads = EXISTING_ART.getHeadsTrait(); + INounsArt.Trait memory glasses = EXISTING_ART.getGlassesTrait(); + + INounsArt predictedArt = INounsArt(computeCreateAddress(upgrader, vm.getNonce(upgrader) + 1)); + + vm.startBroadcast(upgraderKey); + + // Deploy new contracts + NounsDescriptorV2 descriptor = new NounsDescriptorV2(predictedArt, EXISTING_RENDERER); + new NounsArt(address(descriptor), EXISTING_INFLATOR); + + // Populate new art contract using existing pointers + descriptor.setPalettePointer(0, palettePointer); + descriptor.addManyBackgrounds(backgrounds); + + for (uint256 i = 0; i < bodies.storagePages.length; i++) { + descriptor.addBodiesFromPointer( + bodies.storagePages[i].pointer, + bodies.storagePages[i].decompressedLength, + bodies.storagePages[i].imageCount + ); + } + for (uint256 i = 0; i < accessories.storagePages.length; i++) { + descriptor.addAccessoriesFromPointer( + accessories.storagePages[i].pointer, + accessories.storagePages[i].decompressedLength, + accessories.storagePages[i].imageCount + ); + } + for (uint256 i = 0; i < heads.storagePages.length; i++) { + descriptor.addHeadsFromPointer( + heads.storagePages[i].pointer, + heads.storagePages[i].decompressedLength, + heads.storagePages[i].imageCount + ); + } + for (uint256 i = 0; i < glasses.storagePages.length; i++) { + descriptor.addGlassesFromPointer( + glasses.storagePages[i].pointer, + glasses.storagePages[i].decompressedLength, + glasses.storagePages[i].imageCount + ); + } + vm.stopBroadcast(); + } +} diff --git a/packages/nouns-contracts/test/foundry/NounsArt.t.sol b/packages/nouns-contracts/test/foundry/NounsArt.t.sol index 63deedc852..b4a3f0a98a 100644 --- a/packages/nouns-contracts/test/foundry/NounsArt.t.sol +++ b/packages/nouns-contracts/test/foundry/NounsArt.t.sol @@ -98,7 +98,7 @@ contract NounsArtTest is Test, DescriptorHelpers { art.addBackground('ffffff'); - assertEq(art.backgroundsCount(), 1); + assertEq(art.backgroundCount(), 1); assertEq(art.backgrounds(0), 'ffffff'); } @@ -122,7 +122,7 @@ contract NounsArtTest is Test, DescriptorHelpers { vm.prank(descriptor); art.addManyBackgrounds(bgs); - assertEq(art.backgroundsCount(), 2); + assertEq(art.backgroundCount(), 2); assertEq(art.backgrounds(0), 'ffffff'); assertEq(art.backgrounds(1), '000000'); } diff --git a/packages/nouns-contracts/test/foundry/NounsDescriptorV2.t.sol b/packages/nouns-contracts/test/foundry/NounsDescriptorV2.t.sol index dc261e436c..4b8801aa97 100644 --- a/packages/nouns-contracts/test/foundry/NounsDescriptorV2.t.sol +++ b/packages/nouns-contracts/test/foundry/NounsDescriptorV2.t.sol @@ -133,49 +133,33 @@ contract NounsDescriptorV2Test is Test { } function testBackgroundCountUsesArt() public { - vm.mockCall(address(art), abi.encodeWithSelector(NounsArt.backgroundsCount.selector), abi.encode(42)); + vm.mockCall(address(art), abi.encodeWithSelector(NounsArt.backgroundCount.selector), abi.encode(42)); assertEq(descriptor.backgroundCount(), 42); vm.clearMockedCalls(); } function testBodyCountUsesArt() public { - vm.mockCall( - address(art), - abi.encodeWithSelector(NounsArt.getBodiesTrait.selector), - abi.encode(INounsArt.Trait({ storedImagesCount: 42, storagePages: new INounsArt.NounArtStoragePage[](0) })) - ); + vm.prank(address(descriptor)); + art.addBodiesFromPointer(address(0), 1, 42); assertEq(descriptor.bodyCount(), 42); - vm.clearMockedCalls(); } function testAccessoryCountUsesArt() public { - vm.mockCall( - address(art), - abi.encodeWithSelector(NounsArt.getAccessoriesTrait.selector), - abi.encode(INounsArt.Trait({ storedImagesCount: 42, storagePages: new INounsArt.NounArtStoragePage[](0) })) - ); + vm.prank(address(descriptor)); + art.addAccessoriesFromPointer(address(0), 1, 42); assertEq(descriptor.accessoryCount(), 42); - vm.clearMockedCalls(); } function testHeadCountUsesArt() public { - vm.mockCall( - address(art), - abi.encodeWithSelector(NounsArt.getHeadsTrait.selector), - abi.encode(INounsArt.Trait({ storedImagesCount: 42, storagePages: new INounsArt.NounArtStoragePage[](0) })) - ); + vm.prank(address(descriptor)); + art.addHeadsFromPointer(address(0), 1, 42); assertEq(descriptor.headCount(), 42); - vm.clearMockedCalls(); } function testGlassesCountUsesArt() public { - vm.mockCall( - address(art), - abi.encodeWithSelector(NounsArt.getGlassesTrait.selector), - abi.encode(INounsArt.Trait({ storedImagesCount: 42, storagePages: new INounsArt.NounArtStoragePage[](0) })) - ); + vm.prank(address(descriptor)); + art.addGlassesFromPointer(address(0), 1, 42); assertEq(descriptor.glassesCount(), 42); - vm.clearMockedCalls(); } function testAddManyBackgroundsUsesArt() public { @@ -477,7 +461,7 @@ contract NounsDescriptorV2Test is Test { } function _makeArtGettersNotRevert() internal { - vm.mockCall(address(art), abi.encodeWithSelector(NounsArt.backgroundsCount.selector), abi.encode(123)); + vm.mockCall(address(art), abi.encodeWithSelector(INounsArt.backgroundCount.selector), abi.encode(123)); vm.mockCall(address(art), abi.encodeWithSelector(INounsArt.backgrounds.selector), abi.encode('return value')); vm.mockCall(address(art), abi.encodeWithSelector(INounsArt.bodies.selector), abi.encode('return value')); vm.mockCall(address(art), abi.encodeWithSelector(INounsArt.accessories.selector), abi.encode('return value')); diff --git a/packages/nouns-subgraph/package.json b/packages/nouns-subgraph/package.json index 0b0d1caf05..5c3af453b6 100644 --- a/packages/nouns-subgraph/package.json +++ b/packages/nouns-subgraph/package.json @@ -31,7 +31,7 @@ "mustache": "mustache" }, "devDependencies": { - "@graphprotocol/graph-cli": "0.47.1", + "@graphprotocol/graph-cli": "0.51.0", "@graphprotocol/graph-ts": "0.31.0", "mustache": "4.2.0", "matchstick-as": "0.5.0" diff --git a/packages/nouns-subgraph/schema.graphql b/packages/nouns-subgraph/schema.graphql index 75d5d871bf..119df4a00d 100644 --- a/packages/nouns-subgraph/schema.graphql +++ b/packages/nouns-subgraph/schema.graphql @@ -257,6 +257,9 @@ type Proposal @entity { "Total supply when this proposal was created" totalSupply: BigInt! + "Adjusted total supply when this proposal was created" + adjustedTotalSupply: BigInt! + "Dynamic quorum param snapshot: min quorum basis points" minQuorumVotesBPS: Int! @@ -280,6 +283,30 @@ type Proposal @entity { "The block at which voting balance snapshots are taken for this proposal" voteSnapshotBlock: BigInt! + + "The block number at which this proposal was canceled" + canceledBlock: BigInt + + "The timestamp when this proposal was canceled" + canceledTimestamp: BigInt + + "The block number at which this proposal was executed" + executedBlock: BigInt + + "The timestamp when this proposal was executed" + executedTimestamp: BigInt + + "The block number at which this proposal was vetoed" + vetoedBlock: BigInt + + "The timestamp when this proposal was vetoed" + vetoedTimestamp: BigInt + + "The block number at which this proposal was queued" + queuedBlock: BigInt + + "The timestamp when this proposal was queued" + queuedTimestamp: BigInt } type ProposalVersion @entity(immutable: true) { @@ -288,6 +315,9 @@ type ProposalVersion @entity(immutable: true) { "The proposal that was updated" proposal: Proposal! + "The block number of the update" + createdBlock: BigInt! + "The block timestamp of the update" createdAt: BigInt! @@ -343,6 +373,9 @@ type Vote @entity { "Block number of vote" blockNumber: BigInt! + + "The timestamp of the block the vote is in" + blockTimestamp: BigInt! } type Governance @entity { @@ -520,6 +553,12 @@ type ProposalCandidateSignature @entity { "Whether this signature has been canceled" canceled: Boolean! + + "The signature's creation timestamp" + createdTimestamp: BigInt! + + "The signature's creation block" + createdBlock: BigInt! } type ProposalFeedback @entity(immutable: true) { diff --git a/packages/nouns-subgraph/src/custom-types/ParsedProposalV3.ts b/packages/nouns-subgraph/src/custom-types/ParsedProposalV3.ts index ef9f36588c..abfdccc3bf 100644 --- a/packages/nouns-subgraph/src/custom-types/ParsedProposalV3.ts +++ b/packages/nouns-subgraph/src/custom-types/ParsedProposalV3.ts @@ -1,5 +1,6 @@ import { BigInt, Bytes } from '@graphprotocol/graph-ts'; import { + NounsDAO, ProposalCreatedWithRequirements, ProposalCreatedWithRequirements1, } from '../types/NounsDAO/NounsDAO'; @@ -26,6 +27,7 @@ export class ParsedProposalV3 { title: string = ''; status: string = ''; signers: string[] = []; + adjustedTotalSupply: BigInt = BIGINT_ZERO; static fromV1Event(event: ProposalCreatedWithRequirements1): ParsedProposalV3 { const proposal = new ParsedProposalV3(); @@ -54,6 +56,7 @@ export class ParsedProposalV3 { static fromV3Event(event: ProposalCreatedWithRequirements): ParsedProposalV3 { const proposal = new ParsedProposalV3(); + const nounsDAO = NounsDAO.bind(event.address); proposal.id = event.params.id.toString(); proposal.proposer = event.params.proposer.toHexString(); @@ -79,6 +82,7 @@ export class ParsedProposalV3 { } proposal.updatePeriodEndBlock = event.params.updatePeriodEndBlock; + proposal.adjustedTotalSupply = nounsDAO.adjustedTotalSupply(); return proposal; } diff --git a/packages/nouns-subgraph/src/nouns-dao-data.ts b/packages/nouns-subgraph/src/nouns-dao-data.ts index b95c7e18b4..9b8026f585 100644 --- a/packages/nouns-subgraph/src/nouns-dao-data.ts +++ b/packages/nouns-subgraph/src/nouns-dao-data.ts @@ -121,6 +121,8 @@ export function handleSignatureAdded(event: SignatureAdded): void { candidateSig.encodedProposalHash = event.params.encodedPropHash; candidateSig.sigDigest = event.params.sigDigest; candidateSig.reason = event.params.reason; + candidateSig.createdBlock = event.block.number; + candidateSig.createdTimestamp = event.block.timestamp; candidateSig.save(); } diff --git a/packages/nouns-subgraph/src/nouns-dao.ts b/packages/nouns-subgraph/src/nouns-dao.ts index 91bce58ff6..7d8c523111 100644 --- a/packages/nouns-subgraph/src/nouns-dao.ts +++ b/packages/nouns-subgraph/src/nouns-dao.ts @@ -129,6 +129,11 @@ export function handleProposalCreated(parsedProposal: ParsedProposalV3): void { // Doing these for V1 props as well to avoid making these fields optional + avoid missing required field warnings const governance = getGovernanceEntity(); proposal.totalSupply = governance.totalTokenHolders; + if (parsedProposal.adjustedTotalSupply.equals(BIGINT_ZERO)) { + proposal.adjustedTotalSupply = proposal.totalSupply; + } else { + proposal.adjustedTotalSupply = parsedProposal.adjustedTotalSupply; + } if ( governance.voteSnapshotBlockSwitchProposalId.equals(BIGINT_ZERO) || @@ -214,6 +219,8 @@ export function handleProposalCanceled(event: ProposalCanceled): void { let proposal = getOrCreateProposal(event.params.id.toString()); proposal.status = STATUS_CANCELLED; + proposal.canceledBlock = event.block.number; + proposal.canceledTimestamp = event.block.timestamp; proposal.save(); } @@ -221,6 +228,8 @@ export function handleProposalVetoed(event: ProposalVetoed): void { let proposal = getOrCreateProposal(event.params.id.toString()); proposal.status = STATUS_VETOED; + proposal.vetoedBlock = event.block.number; + proposal.vetoedTimestamp = event.block.timestamp; proposal.save(); } @@ -230,6 +239,8 @@ export function handleProposalQueued(event: ProposalQueued): void { proposal.status = STATUS_QUEUED; proposal.executionETA = event.params.eta; + proposal.queuedBlock = event.block.number; + proposal.queuedTimestamp = event.block.timestamp; proposal.save(); governance.proposalsQueued = governance.proposalsQueued.plus(BIGINT_ONE); @@ -242,6 +253,8 @@ export function handleProposalExecuted(event: ProposalExecuted): void { proposal.status = STATUS_EXECUTED; proposal.executionETA = null; + proposal.executedBlock = event.block.number; + proposal.executedTimestamp = event.block.timestamp; proposal.save(); governance.proposalsQueued = governance.proposalsQueued.minus(BIGINT_ONE); @@ -276,6 +289,7 @@ export function handleVoteCast(event: VoteCast): void { vote.supportDetailed = event.params.support; vote.nouns = voter.nounsRepresented; vote.blockNumber = event.block.number; + vote.blockTimestamp = event.block.timestamp; if (event.params.reason != '') { vote.reason = event.params.reason; @@ -299,7 +313,7 @@ export function handleVoteCast(event: VoteCast): void { if (usingDynamicQuorum) { proposal.quorumVotes = dynamicQuorumVotes( proposal.againstVotes, - proposal.totalSupply, + proposal.adjustedTotalSupply, proposal.minQuorumVotesBPS, proposal.maxQuorumVotesBPS, proposal.quorumCoefficient, @@ -365,6 +379,7 @@ function captureProposalVersion( const versionId = txHash.concat('-').concat(logIndex); const previousVersion = getOrCreateProposalVersion(versionId); previousVersion.proposal = proposal.id; + previousVersion.createdBlock = proposal.lastUpdatedBlock; previousVersion.createdAt = proposal.lastUpdatedTimestamp; previousVersion.targets = proposal.targets; previousVersion.values = proposal.values; diff --git a/packages/nouns-subgraph/tests/nouns-dao-data.test.ts b/packages/nouns-subgraph/tests/nouns-dao-data.test.ts index 16dac4adf8..5a41509d6b 100644 --- a/packages/nouns-subgraph/tests/nouns-dao-data.test.ts +++ b/packages/nouns-subgraph/tests/nouns-dao-data.test.ts @@ -116,6 +116,8 @@ describe('nouns-dao-data', () => { encodedProposalHash, sigDigest, reason, + blockNumber, + blockTimestamp, ); handleSignatureAdded(event); @@ -125,14 +127,13 @@ describe('nouns-dao-data', () => { )!; const version = ProposalCandidateVersion.load(candidate.latestVersion); - const content = ProposalCandidateContent.load(version!.content); - assert.i32Equals(content!.contentSignatures.length, 1); + const content = ProposalCandidateContent.load(version!.content)!; + assert.i32Equals(content.contentSignatures.load().length, 1); assert.stringEquals( - content!.contentSignatures[0], + content.contentSignatures.load()[0].id, signerWithDelegate.toHexString().concat('-').concat(sig.toHexString()), ); - - const signature = ProposalCandidateSignature.load(content!.contentSignatures[0])!; + const signature = ProposalCandidateSignature.load(content.contentSignatures.load()[0].id)!; assert.stringEquals(signature.signer, signerWithDelegate.toHexString()); assert.bytesEquals(signature.sig, sig); assert.bigIntEquals(signature.expirationTimestamp, expiry); @@ -140,6 +141,8 @@ describe('nouns-dao-data', () => { assert.bytesEquals(signature.sigDigest, sigDigest); assert.stringEquals(signature.reason, reason); assert.booleanEquals(signature.canceled, false); + assert.bigIntEquals(signature.createdBlock, blockNumber); + assert.bigIntEquals(signature.createdTimestamp, blockTimestamp); }); test('skips signature if encodedProposalHash does not match latest version', () => { @@ -158,6 +161,8 @@ describe('nouns-dao-data', () => { differentEncodedProposalHash, sigDigest, reason, + blockNumber, + blockTimestamp, ); handleSignatureAdded(event); diff --git a/packages/nouns-subgraph/tests/nouns-dao.test.ts b/packages/nouns-subgraph/tests/nouns-dao.test.ts index b52ab38527..53936c6f54 100644 --- a/packages/nouns-subgraph/tests/nouns-dao.test.ts +++ b/packages/nouns-subgraph/tests/nouns-dao.test.ts @@ -7,6 +7,8 @@ import { afterAll, beforeEach, afterEach, + createMockedFunction, + newMockEvent, } from 'matchstick-as/assembly/index'; import { Address, BigInt, Bytes, ethereum } from '@graphprotocol/graph-ts'; import { EscrowDeposit, EscrowedNoun, Proposal, ProposalVersion } from '../src/types/schema'; @@ -23,6 +25,10 @@ import { handleProposalTransactionsUpdated, handleEscrowedToFork, handleWithdrawFromForkEscrow, + handleProposalCanceled, + handleProposalVetoed, + handleProposalExecuted, + handleProposalQueued, } from '../src/nouns-dao'; import { createProposalCreatedWithRequirementsEventV1, @@ -39,13 +45,21 @@ import { createProposalTransactionsUpdatedEvent, createEscrowedToForkEvent, createWithdrawFromForkEscrowEvent, + createProposalCanceledEvent, + createProposalVetoedEvent, + createProposalExecutedEvent, + createProposalQueuedEvent, } from './utils'; import { BIGINT_10K, BIGINT_ONE, BIGINT_ZERO, STATUS_ACTIVE, + STATUS_CANCELLED, + STATUS_EXECUTED, STATUS_PENDING, + STATUS_QUEUED, + STATUS_VETOED, } from '../src/utils/constants'; import { getOrCreateDynamicQuorumParams, @@ -88,6 +102,12 @@ describe('nouns-dao', () => { delegate.delegatedVotes = BIGINT_ONE; delegate.delegatedVotesRaw = BIGINT_ONE; delegate.save(); + + createMockedFunction( + newMockEvent().address, + 'adjustedTotalSupply', + 'adjustedTotalSupply():(uint256)', + ).returns([ethereum.Value.fromI32(0)]); }); afterAll(() => { @@ -726,7 +746,7 @@ describe('forking', () => { const fork = getOrCreateFork(forkId); assert.i32Equals(fork.tokensInEscrowCount, 2); - assert.i32Equals(fork.escrowedNouns.length, 2); + assert.i32Equals(fork.escrowedNouns.load().length, 2); let escrowedNoun = EscrowedNoun.load(forkId.toString().concat('-4'))!; let escrowDespositId = txHash.toHexString().concat('-0'); @@ -748,3 +768,94 @@ describe('forking', () => { }); }); }); + +describe('Proposal status changes', () => { + beforeEach(() => { + const proposalEvent = new ParsedProposalV3(); + proposalEvent.id = proposalId.toString(); + proposalEvent.proposer = proposerWithDelegate.toHexString(); + proposalEvent.targets = changetype([Address.fromString(SOME_ADDRESS)]); + proposalEvent.values = [BigInt.fromI32(123)]; + proposalEvent.signatures = ['some signature']; + proposalEvent.signers = [proposerWithDelegate.toHexString()]; + proposalEvent.calldatas = [Bytes.fromI32(312)]; + proposalEvent.createdTimestamp = updateBlockTimestamp.minus(BIGINT_ONE); + proposalEvent.createdBlock = updateBlockNumber.minus(BIGINT_ONE); + proposalEvent.createdTransactionHash = Bytes.fromI32(11); + proposalEvent.description = 'some description'; + proposalEvent.title = 'some title'; + + handleProposalCreated(proposalEvent); + }); + + test('handleProposalCanceled', () => { + handleProposalCanceled( + createProposalCanceledEvent( + txHash, + logIndex, + updateBlockTimestamp, + updateBlockNumber, + proposalId, + ), + ); + + const proposal = Proposal.load(proposalId.toString())!; + assert.stringEquals(STATUS_CANCELLED, proposal.status); + assert.bigIntEquals(updateBlockTimestamp, proposal.canceledTimestamp!); + assert.bigIntEquals(updateBlockNumber, proposal.canceledBlock!); + }); + + test('handleProposalVetoed', () => { + handleProposalVetoed( + createProposalVetoedEvent( + txHash, + logIndex, + updateBlockTimestamp, + updateBlockNumber, + proposalId, + ), + ); + + const proposal = Proposal.load(proposalId.toString())!; + assert.stringEquals(STATUS_VETOED, proposal.status); + assert.bigIntEquals(updateBlockTimestamp, proposal.vetoedTimestamp!); + assert.bigIntEquals(updateBlockNumber, proposal.vetoedBlock!); + }); + + test('handleProposalQueued', () => { + const eta = updateBlockTimestamp.plus(BigInt.fromI32(100)); + handleProposalQueued( + createProposalQueuedEvent( + txHash, + logIndex, + updateBlockTimestamp, + updateBlockNumber, + proposalId, + eta, + ), + ); + + const proposal = Proposal.load(proposalId.toString())!; + assert.stringEquals(STATUS_QUEUED, proposal.status); + assert.bigIntEquals(updateBlockTimestamp, proposal.queuedTimestamp!); + assert.bigIntEquals(updateBlockNumber, proposal.queuedBlock!); + assert.bigIntEquals(eta, proposal.executionETA!); + }); + + test('handleProposalExecuted', () => { + handleProposalExecuted( + createProposalExecutedEvent( + txHash, + logIndex, + updateBlockTimestamp, + updateBlockNumber, + proposalId, + ), + ); + + const proposal = Proposal.load(proposalId.toString())!; + assert.stringEquals(STATUS_EXECUTED, proposal.status); + assert.bigIntEquals(updateBlockTimestamp, proposal.executedTimestamp!); + assert.bigIntEquals(updateBlockNumber, proposal.executedBlock!); + }); +}); diff --git a/packages/nouns-subgraph/tests/utils.ts b/packages/nouns-subgraph/tests/utils.ts index ea838aba03..7f992aa349 100644 --- a/packages/nouns-subgraph/tests/utils.ts +++ b/packages/nouns-subgraph/tests/utils.ts @@ -12,6 +12,10 @@ import { ProposalTransactionsUpdated, EscrowedToFork, WithdrawFromForkEscrow, + ProposalCanceled, + ProposalVetoed, + ProposalExecuted, + ProposalQueued, } from '../src/types/NounsDAO/NounsDAO'; import { handleMinQuorumVotesBPSSet, @@ -396,8 +400,12 @@ export function createSignatureAddedEvent( encodedPropHash: Bytes, sigDigest: Bytes, reason: string, + blockNumber: BigInt, + blockTimestamp: BigInt, ): SignatureAdded { let newEvent = changetype(newMockEvent()); + newEvent.block.timestamp = blockTimestamp; + newEvent.block.number = blockNumber; newEvent.parameters.push(new ethereum.EventParam('signer', ethereum.Value.fromAddress(signer))); newEvent.parameters.push(new ethereum.EventParam('sig', ethereum.Value.fromBytes(sig))); @@ -562,3 +570,94 @@ export function createWithdrawFromForkEscrowEvent( return newEvent; } + +export function createProposalCanceledEvent( + txHash: Bytes, + logIndex: BigInt, + blockTimestamp: BigInt, + blockNumber: BigInt, + proposalId: BigInt, +): ProposalCanceled { + let newEvent = changetype(newMockEvent()); + + newEvent.transaction.hash = txHash; + newEvent.logIndex = logIndex; + newEvent.block.timestamp = blockTimestamp; + newEvent.block.number = blockNumber; + + newEvent.parameters = new Array(); + newEvent.parameters.push( + new ethereum.EventParam('id', ethereum.Value.fromUnsignedBigInt(proposalId)), + ); + + return newEvent; +} + +export function createProposalVetoedEvent( + txHash: Bytes, + logIndex: BigInt, + blockTimestamp: BigInt, + blockNumber: BigInt, + proposalId: BigInt, +): ProposalVetoed { + let newEvent = changetype(newMockEvent()); + + newEvent.transaction.hash = txHash; + newEvent.logIndex = logIndex; + newEvent.block.timestamp = blockTimestamp; + newEvent.block.number = blockNumber; + + newEvent.parameters = new Array(); + newEvent.parameters.push( + new ethereum.EventParam('id', ethereum.Value.fromUnsignedBigInt(proposalId)), + ); + + return newEvent; +} + +export function createProposalExecutedEvent( + txHash: Bytes, + logIndex: BigInt, + blockTimestamp: BigInt, + blockNumber: BigInt, + proposalId: BigInt, +): ProposalExecuted { + let newEvent = changetype(newMockEvent()); + + newEvent.transaction.hash = txHash; + newEvent.logIndex = logIndex; + newEvent.block.timestamp = blockTimestamp; + newEvent.block.number = blockNumber; + + newEvent.parameters = new Array(); + newEvent.parameters.push( + new ethereum.EventParam('id', ethereum.Value.fromUnsignedBigInt(proposalId)), + ); + + return newEvent; +} + +export function createProposalQueuedEvent( + txHash: Bytes, + logIndex: BigInt, + blockTimestamp: BigInt, + blockNumber: BigInt, + proposalId: BigInt, + eta: BigInt, +): ProposalQueued { + let newEvent = changetype(newMockEvent()); + + newEvent.transaction.hash = txHash; + newEvent.logIndex = logIndex; + newEvent.block.timestamp = blockTimestamp; + newEvent.block.number = blockNumber; + + newEvent.parameters = new Array(); + newEvent.parameters.push( + new ethereum.EventParam('id', ethereum.Value.fromUnsignedBigInt(proposalId)), + ); + + newEvent.parameters.push(new ethereum.EventParam('eta', ethereum.Value.fromUnsignedBigInt(eta))); + + return newEvent; +} diff --git a/packages/nouns-webapp/src/components/DynamicQuorumInfoModal/index.tsx b/packages/nouns-webapp/src/components/DynamicQuorumInfoModal/index.tsx index cb7b585dfe..80341d2b21 100644 --- a/packages/nouns-webapp/src/components/DynamicQuorumInfoModal/index.tsx +++ b/packages/nouns-webapp/src/components/DynamicQuorumInfoModal/index.tsx @@ -3,7 +3,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import config from '../../config'; import { Proposal, useDynamicQuorumProps } from '../../wrappers/nounsDao'; -import { totalNounSupplyAtPropSnapshot } from '../../wrappers/subgraph'; +import { adjustedNounSupplyAtPropSnapshot } from '../../wrappers/subgraph'; import { Backdrop } from '../Modal'; import classes from './DynamicQuorumInfoModal.module.css'; import { XIcon } from '@heroicons/react/solid'; @@ -291,7 +291,7 @@ const DynamicQuorumInfoModal: React.FC<{ const { onDismiss, proposal, againstVotesAbsolute, currentQuorum } = props; const { data, loading, error } = useQuery( - totalNounSupplyAtPropSnapshot(proposal && proposal.id ? proposal.id : '0'), + adjustedNounSupplyAtPropSnapshot(proposal && proposal.id ? proposal.id : '0'), ); const dynamicQuorumProps = useDynamicQuorumProps( @@ -318,7 +318,7 @@ const DynamicQuorumInfoModal: React.FC<{ {ReactDOM.createPortal( , document.getElementById('overlay-root')!, diff --git a/packages/nouns-webapp/src/config.ts b/packages/nouns-webapp/src/config.ts index a1fa63f636..2f602d41db 100644 --- a/packages/nouns-webapp/src/config.ts +++ b/packages/nouns-webapp/src/config.ts @@ -85,7 +85,7 @@ const app: Record = { jsonRpcUri: createNetworkHttpUrl('mainnet'), wsRpcUri: createNetworkWsUrl('mainnet'), subgraphApiUri: - 'https://api.goldsky.com/api/public/project_cldf2o9pqagp43svvbk5u3kmo/subgraphs/nouns/0.2.0/gn', + 'https://api.goldsky.com/api/public/project_cldf2o9pqagp43svvbk5u3kmo/subgraphs/nouns/prod/gn', enableHistory: process.env.REACT_APP_ENABLE_HISTORY === 'true', }, [ChainId.Hardhat]: { diff --git a/packages/nouns-webapp/src/wrappers/subgraph.ts b/packages/nouns-webapp/src/wrappers/subgraph.ts index 20c1ad1678..78bc292385 100644 --- a/packages/nouns-webapp/src/wrappers/subgraph.ts +++ b/packages/nouns-webapp/src/wrappers/subgraph.ts @@ -490,10 +490,10 @@ export const currentlyDelegatedNouns = (delegate: string) => gql` } `; -export const totalNounSupplyAtPropSnapshot = (proposalId: string) => gql` +export const adjustedNounSupplyAtPropSnapshot = (proposalId: string) => gql` { proposals(where: {id: ${proposalId}}) { - totalSupply + adjustedTotalSupply } } `; diff --git a/yarn.lock b/yarn.lock index d6ebebd7a7..443247cf5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2849,13 +2849,13 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== -"@graphprotocol/graph-cli@0.47.1": - version "0.47.1" - resolved "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.47.1.tgz#bc7ab0e882c895f2beb5f21014a32b2c9d92ea8c" - integrity sha512-hbWWc3BLG+dEpdzEMOa0zs7990OnwFDatEdsiRb7dVpCyq8AiqG5oVnegiXecgZ1XX1fpbtwYQls7S9c2OgPrQ== +"@graphprotocol/graph-cli@0.51.0": + version "0.51.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/graph-cli/-/graph-cli-0.51.0.tgz#c9b864b249b98946b4b666045d7e7a56154c72ec" + integrity sha512-Yvwhx9Q31egUOVUQH2Hti9ysqPk1Ti9+si8Ii/xpGnXp6qZC/elSr/1rzEOgi84OSR1Y74GLwmNNGZImjD/uLg== dependencies: "@float-capital/float-subgraph-uncrashable" "^0.0.0-alpha.4" - "@oclif/core" "2.8.2" + "@oclif/core" "2.8.4" "@whatwg-node/fetch" "^0.8.4" assemblyscript "0.19.23" binary-install-raw "0.0.13" @@ -2866,7 +2866,7 @@ dockerode "2.5.8" fs-extra "9.1.0" glob "9.3.5" - gluegun "https://github.com/edgeandnode/gluegun#v4.3.1-pin-colors-dep" + gluegun "5.1.2" graphql "15.5.0" immutable "4.2.1" ipfs-http-client "55.0.0" @@ -4562,10 +4562,10 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@oclif/core@2.8.2": - version "2.8.2" - resolved "https://registry.npmjs.org/@oclif/core/-/core-2.8.2.tgz#86fc31f20419dbb3cd25f89f4f1d83760c60f7c0" - integrity sha512-g50NrCdEcFlBfuwZb9RxLmxPNQ9wIaBPOiwbxlGYRkHMnsC6LNHcvVtyDnmndU8qoXrmCOZ6ocSZenOMlG+G1w== +"@oclif/core@2.8.4": + version "2.8.4" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.8.4.tgz#7b453be6d4cd060ff4990bc8e31824a1de308354" + integrity sha512-VlFDhoAJ1RDwcpDF46wAlciWTIryapMUViACttY9GwX6Ci6Lud1awe/pC3k4jad5472XshnPQV4bHAl4a/yxpA== dependencies: "@types/cli-progress" "^3.11.0" ansi-escapes "^4.3.2" @@ -7161,7 +7161,7 @@ ansi-colors@4.1.1, ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-colors@^3.0.0, ansi-colors@^3.2.1: +ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== @@ -7276,13 +7276,12 @@ anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apisauce@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-1.1.5.tgz#31d41a5cf805e401266cec67faf1a50f4aeae234" - integrity sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA== +apisauce@^2.1.5: + version "2.1.6" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.6.tgz#94887f335bf3d735305fc895c8a191c9c2608a7f" + integrity sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg== dependencies: - axios "^0.21.2" - ramda "^0.25.0" + axios "^0.21.4" app-module-path@^2.2.0: version "2.2.0" @@ -7659,7 +7658,7 @@ axe-core@^4.3.5: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5" integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA== -axios@^0.21.1, axios@^0.21.2: +axios@^0.21.1, axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -9585,7 +9584,17 @@ cli-spinners@^2.2.0, cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-table3@^0.5.0, cli-table3@~0.5.0: +cli-table3@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-table3@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== @@ -9785,11 +9794,6 @@ colors@1.0.3, colors@1.0.x: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= -colors@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - colors@1.4.0, colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -10225,16 +10229,16 @@ cosmiconfig-typescript-loader@^4.3.0: resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== -cosmiconfig@6.0.0, cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== +cosmiconfig@7.0.1, cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" + import-fresh "^3.2.1" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.7.2" + yaml "^1.10.0" cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: version "5.2.1" @@ -10246,16 +10250,16 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" -cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" + import-fresh "^3.1.0" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.10.0" + yaml "^1.7.2" cosmiconfig@^8.0.0: version "8.2.0" @@ -11397,6 +11401,13 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +ejs@3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + ejs@^2.6.1: version "2.7.4" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" @@ -11526,14 +11537,7 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -enquirer@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" - integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== - dependencies: - ansi-colors "^3.2.1" - -enquirer@^2.3.0, enquirer@^2.3.5: +enquirer@2.3.6, enquirer@^2.3.0, enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -12570,6 +12574,21 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +execa@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -12583,22 +12602,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -13310,10 +13313,10 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-jetpack@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" - integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== +fs-jetpack@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-4.3.1.tgz#cdfd4b64e6bfdec7c7dc55c76b39efaa7853bb20" + integrity sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ== dependencies: minimatch "^3.0.2" rimraf "^2.6.3" @@ -13530,6 +13533,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -13829,20 +13837,21 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -"gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep": - version "4.3.1" - resolved "git+https://github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a" +gluegun@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-5.1.2.tgz#ffa0beda0fb6bbc089a867157b08602beae2c8cf" + integrity sha512-Cwx/8S8Z4YQg07a6AFsaGnnnmd8mN17414NcPS3OoDtZRwxgsvwRNJNg69niD6fDa8oNwslCG0xH7rEpRNNE/g== dependencies: - apisauce "^1.0.1" + apisauce "^2.1.5" app-module-path "^2.2.0" - cli-table3 "~0.5.0" - colors "1.3.3" - cosmiconfig "6.0.0" - cross-spawn "^7.0.0" - ejs "^2.6.1" - enquirer "2.3.4" - execa "^3.0.0" - fs-jetpack "^2.2.2" + cli-table3 "0.6.0" + colors "1.4.0" + cosmiconfig "7.0.1" + cross-spawn "7.0.3" + ejs "3.1.6" + enquirer "2.3.6" + execa "5.1.1" + fs-jetpack "4.3.1" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.lowercase "^4.3.0" @@ -13858,12 +13867,11 @@ globby@^9.2.0: lodash.trimstart "^4.5.1" lodash.uppercase "^4.3.0" lodash.upperfirst "^4.3.1" - ora "^4.0.0" + ora "4.0.2" pluralize "^8.0.0" - ramdasauce "^2.1.0" - semver "^7.0.0" - which "^2.0.0" - yargs-parser "^16.1.0" + semver "7.3.5" + which "2.0.2" + yargs-parser "^21.0.0" got@9.6.0, got@^9.6.0: version "9.6.0" @@ -14506,6 +14514,11 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -15680,7 +15693,7 @@ it-to-stream@^1.0.0: p-fifo "^1.0.0" readable-stream "^3.6.0" -jake@^10.8.5: +jake@^10.6.1, jake@^10.8.5: version "10.8.7" resolved "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== @@ -18865,7 +18878,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -19104,7 +19117,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -19166,18 +19179,17 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== +ora@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.2.tgz#0e1e68fd45b135d28648b27cf08081fa6e8a297d" + integrity sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig== dependencies: - chalk "^3.0.0" + chalk "^2.4.2" cli-cursor "^3.1.0" cli-spinners "^2.2.0" is-interactive "^1.0.0" log-symbols "^3.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" + strip-ansi "^5.2.0" wcwidth "^1.0.1" ora@^5.1.0: @@ -19273,11 +19285,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -21157,28 +21164,11 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -ramda@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" - integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc= - -ramda@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" - integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== - ramda@^0.27.1: version "0.27.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== -ramdasauce@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" - integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== - dependencies: - ramda "^0.24.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -22620,6 +22610,13 @@ semver@7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@7.3.5, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@7.4.0: version "7.4.0" resolved "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" @@ -22632,13 +22629,6 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - semver@^7.3.7: version "7.5.4" resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" @@ -22874,6 +22864,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" @@ -26259,7 +26254,7 @@ which@1.3.1, which@^1.1.1, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -which@2.0.2, which@^2.0.0, which@^2.0.1, which@^2.0.2: +which@2.0.2, which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -26755,14 +26750,6 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -26784,6 +26771,11 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.0.0: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"