using Nethereum.ABI.FunctionEncoding.Attributes; using Nethereum.Contracts; using System.Numerics; // Generated code, do not modify. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. namespace CodexContractsPlugin.Marketplace { public partial class MarketplaceDeployment : MarketplaceDeploymentBase { public MarketplaceDeployment() : base(BYTECODE) { } public MarketplaceDeployment(string byteCode) : base(byteCode) { } } public class MarketplaceDeploymentBase : ContractDeploymentMessage { public static string BYTECODE = "0x60c06040523480156200001157600080fd5b5060405162004086380380620040868339810160408190526200003491620004f1565b60208301518051608052816101004311620000965760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e7420626c6f636b206865696768740000000000000060448201526064015b60405180910390fd5b81516000908155602083015160015560408301516002805460ff191660ff9092169190911790556060830151839190600390620000d4908262000691565b50608091909101516004909101805460ff191660ff928316179055600580546001600160a01b0319166001600160a01b0393841617905590841660a05284515160649116111590506200016a5760405162461bcd60e51b815260206004820152601560248201527f4d757374206265206c657373207468616e20313030000000000000000000000060448201526064016200008d565b606483600001516060015160ff161115620001c85760405162461bcd60e51b815260206004820152601560248201527f4d757374206265206c657373207468616e20313030000000000000000000000060448201526064016200008d565b82516060810151602090910151606491620001e3916200075d565b60ff161115620002365760405162461bcd60e51b815260206004820152601d60248201527f4d6178696d756d20736c617368696e672065786365656473203130302500000060448201526064016200008d565b82518051600d805460208085015160408087015160609788015160ff9081166401000000000260ff60201b1961ffff90931662010000029290921664ffffff0000199482166101000261ffff1990971698821698909817959095179290921695909517178355808801518051600e90815591810151600f5593840151601080549190931660ff19919091161790915592820151869391929190601190620002de908262000691565b50608091909101516004909101805460ff191660ff909216919091179055506200078f9350505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171562000343576200034362000308565b60405290565b604080519081016001600160401b038111828210171562000343576200034362000308565b604051608081016001600160401b038111828210171562000343576200034362000308565b604051601f8201601f191681016001600160401b0381118282101715620003be57620003be62000308565b604052919050565b805160ff81168114620003d857600080fd5b919050565b600060a08284031215620003f057600080fd5b620003fa6200031e565b905081518152602080830151818301526200041860408401620003c6565b604083015260608301516001600160401b03808211156200043857600080fd5b818501915085601f8301126200044d57600080fd5b81518181111562000462576200046262000308565b62000476601f8201601f1916850162000393565b915080825286848285010111156200048d57600080fd5b60005b81811015620004ad57838101850151838201860152840162000490565b50600084828401015250806060850152505050620004ce60808301620003c6565b608082015292915050565b80516001600160a01b0381168114620003d857600080fd5b6000806000606084860312156200050757600080fd5b83516001600160401b03808211156200051f57600080fd5b9085019081870360a08112156200053557600080fd5b6200053f62000349565b60808212156200054e57600080fd5b620005586200036e565b91506200056584620003c6565b82526200057560208501620003c6565b6020830152604084015161ffff811681146200059057600080fd5b6040830152620005a360608501620003c6565b606083015290815260808301519082821115620005bf57600080fd5b620005cd89838601620003dd565b602082015280965050505050620005e760208501620004d9565b9150620005f760408501620004d9565b90509250925092565b600181811c908216806200061557607f821691505b6020821081036200063657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200068c576000816000526020600020601f850160051c81016020861015620006675750805b601f850160051c820191505b81811015620006885782815560010162000673565b5050505b505050565b81516001600160401b03811115620006ad57620006ad62000308565b620006c581620006be845462000600565b846200063c565b602080601f831160018114620006fd5760008415620006e45750858301515b600019600386901b1c1916600185901b17855562000688565b600085815260208120601f198616915b828110156200072e578886015182559484019460019091019084016200070d565b50858210156200074d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60ff81811683821602908116908181146200078857634e487b7160e01b600052601160045260246000fd5b5092915050565b60805160a0516138a0620007e6600039600081816104060152818161161301528181611fd101528181612070015281816121e50152818161228401526124a601526000818161295d0152612ad401526138a06000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80639777b72c116100e3578063c0cc4add1161008c578063f752196b11610066578063f752196b146103c4578063fb1e61ca146103e4578063fc0c546a1461040457600080fd5b8063c0cc4add1461038b578063c5d433511461039e578063e8aa0a07146103b157600080fd5b8063a6af384b116100bd578063a6af384b14610338578063b396dc791461034b578063be5cdc481461036b57600080fd5b80639777b72c146102fa578063a29c29a414610302578063a3a0807e1461031557600080fd5b80634641dce6116101455780636b00c8cf1161011f5780636b00c8cf1461028e5780636e2b54ee146102d257806379502c55146102e557600080fd5b80634641dce61461024157806359cc89ed146102665780635da738351461027957600080fd5b80630aefaabe116101765780630aefaabe146101f8578063329b5a0b1461020b578063458d2bf11461022e57600080fd5b806302fa8e651461019d57806305b90773146101c357806308695fcd146101e3575b600080fd5b6101b06101ab366004612d0a565b61042a565b6040519081526020015b60405180910390f35b6101d66101d1366004612d0a565b6104a1565b6040516101ba9190612d39565b6101f66101f1366004612d53565b6105b3565b005b6101f6610206366004612d8a565b610709565b6101b0610219366004612d0a565b60009081526014602052604090206005015490565b6101b061023c366004612d0a565b6108e6565b61025461024f366004612d0a565b6108ff565b60405160ff90911681526020016101ba565b6101f6610274366004612ddf565b610912565b610281610c16565b6040516101ba9190612e16565b6102ba61029c366004612d0a565b6000908152601560205260409020600501546001600160a01b031690565b6040516001600160a01b0390911681526020016101ba565b6101f66102e0366004612d0a565b610c3d565b6102ed610c4a565b6040516101ba9190612ea0565b610281610dd3565b6101f6610310366004612d0a565b610df2565b610328610323366004612d0a565b610e62565b60405190151581526020016101ba565b6101f6610346366004612f3b565b610e97565b61035e610359366004612d0a565b611183565b6040516101ba9190613044565b61037e610379366004612d0a565b61136c565b6040516101ba9190613076565b610328610399366004612d0a565b61143a565b6101f66103ac36600461308a565b61144d565b6101f66103bf3660046130ba565b61168c565b6101b06103d2366004612d0a565b60009081526008602052604090205490565b6103f76103f2366004612d0a565b6117c1565b6040516101ba91906130e8565b7f00000000000000000000000000000000000000000000000000000000000000006102ba565b60008181526014602052604081206004015481610446846104a1565b9050600081600481111561045c5761045c612d23565b14806104795750600181600481111561047757610477612d23565b145b15610485575092915050565b61049982610494600142613111565b611978565b949350505050565b60008181526013602052604081205482906001600160a01b03166104fe5760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064015b60405180910390fd5b600083815260146020526040812090815460ff16600481111561052357610523612d23565b148015610540575060008481526014602052604090206005015442115b1561054f5760029250506105ad565b6001815460ff16600481111561056757610567612d23565b148061058857506000815460ff16600481111561058657610586612d23565b145b80156105975750806004015442115b156105a65760039250506105ad565b5460ff1691505b50919050565b60016105be8361136c565b60058111156105cf576105cf612d23565b1461061c5760405162461bcd60e51b815260206004820152601960248201527f536c6f74206e6f7420616363657074696e672070726f6f66730000000000000060448201526064016104f5565b6106268282611990565b6000828152601560209081526040808320600181015484526013909252909120600d5461ffff620100009091041661066a8560009081526008602052604090205490565b610674919061313a565b60000361070357600d54600682015460009160649161069e91640100000000900460ff169061314e565b6106a89190613165565b9050808360040160008282546106be9190613111565b9091555050600d54600086815260086020526040902054610100820460ff169162010000900461ffff16906106f39190613165565b106107015761070185611bbd565b505b50505050565b826000808281526015602052604090205460ff16600581111561072e5761072e612d23565b0361076a5760405162461bcd60e51b815260206004820152600c60248201526b536c6f74206973206672656560a01b60448201526064016104f5565b600084815260156020526040902060058101546001600160a01b031633146107d45760405162461bcd60e51b815260206004820152601960248201527f536c6f742066696c6c6564206279206f7468657220686f73740000000000000060448201526064016104f5565b60006107df8661136c565b905060048160058111156107f5576107f5612d23565b036108425760405162461bcd60e51b815260206004820152600c60248201527f416c72656164792070616964000000000000000000000000000000000000000060448201526064016104f5565b600281600581111561085657610856612d23565b036108705761086b8260010154878787611d63565b6108de565b600581600581111561088457610884612d23565b036108995761086b82600101548787876120f5565b60038160058111156108ad576108ad612d23565b036108bc5761086b3387612307565b60018160058111156108d0576108d0612d23565b036108de576108de86611bbd565b505050505050565b60006108f9826108f461232e565b612339565b92915050565b60006108f98261090d61232e565b61234d565b60008381526013602052604090205483906001600160a01b031661096a5760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064016104f5565b6000848152601360205260409020600181015467ffffffffffffffff1684106109d55760405162461bcd60e51b815260206004820152600c60248201527f496e76616c696420736c6f74000000000000000000000000000000000000000060448201526064016104f5565b6040805160208082018890528183018790528251808303840181526060909201909252805191012060009060008181526015602052604081206001810189905560038101889055919250610a288361136c565b6005811115610a3957610a39612d23565b14610a865760405162461bcd60e51b815260206004820152601060248201527f536c6f74206973206e6f7420667265650000000000000000000000000000000060448201526064016104f5565b600483015460008381526006602090815260408083204290556007909152902055610ab1828661168c565b60058101805473ffffffffffffffffffffffffffffffffffffffff191633179055805460ff191660019081178255426002830155600088815260146020526040812080830180549193929091610b08908490613179565b90915550610b18905088426123c1565b816002016000828254610b2b9190613111565b90915550506006840154610b3f338261245e565b8060166000016000828254610b549190613179565b9091555050600483018190556005830154610b78906001600160a01b031685612561565b887ff530852268993f91008f1a1e0b09b5c813acd4188481f1fa83c33c7182e814b489604051610baa91815260200190565b60405180910390a26001808601549083015467ffffffffffffffff9091169003610c0b57815460ff1916600117825542600383015560405189907f85e1543bf2f84fe80c6badbce3648c8539ad1df4d2b3d822938ca0538be727e690600090a25b505050505050505050565b336000908152600c60205260409020606090610c3890610c3590612583565b90565b905090565b610c47813361144d565b50565b610ca86040805160c0810182526000918101828152606082018390526080820183905260a082019290925290819081526040805160a08101825260008082526020828101829052928201819052606080830152608082015291015290565b6040805160c081018252600d805460ff8082168486019081526101008304821660608087019190915261ffff620100008504166080870152640100000000909304821660a08087019190915290855285519081018652600e80548252600f54602083810191909152601054909316968201969096526011805495969495928701949193919291840191610d3a9061318c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d669061318c565b8015610db35780601f10610d8857610100808354040283529160200191610db3565b820191906000526020600020905b815481529060010190602001808311610d9657829003601f168201915b50505091835250506004919091015460ff16602090910152905250919050565b336000908152600b60205260409020606090610c3890610c3590612583565b806000808281526015602052604090205460ff166005811115610e1757610e17612d23565b03610e535760405162461bcd60e51b815260206004820152600c60248201526b536c6f74206973206672656560a01b60448201526064016104f5565b610e5e823333610709565b5050565b6000806000610e7884610e7361232e565b612590565b9092509050818015610499575060025460ff9081169116109392505050565b33610ea560208301836131c0565b6001600160a01b031614610efb5760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420636c69656e7420616464726573730000000000000000000060448201526064016104f5565b6000610f0e610f0983613352565b612673565b6000818152601360205260409020549091506001600160a01b031615610f765760405162461bcd60e51b815260206004820152601660248201527f5265717565737420616c7265616479206578697374730000000000000000000060448201526064016104f5565b6000826101200135118015610f9357506060820135610120830135105b610fdf5760405162461bcd60e51b815260206004820152601360248201527f457870697279206e6f7420696e2072616e67650000000000000000000000000060448201526064016104f5565b610fef6040830160208401613441565b67ffffffffffffffff1661100a610100840160e08501613441565b67ffffffffffffffff1611156110625760405162461bcd60e51b815260206004820152601960248201527f6d6178536c6f744c6f7373206578636565647320736c6f74730000000000000060448201526064016104f5565b6000818152601360205260409020829061107c82826135cc565b5061108d9050606083013542613179565b6000828152601460205260409020600401556110ae61012083013542613179565b6000828152601460209081526040909120600501919091556110dc906110d6908401846131c0565b826126a3565b60006110ef6110ea84613352565b6126c5565b600083815260146020526040812060020182905560168054929350839290919061111a908490613179565b9091555061112a9050338261245e565b7f5fdb86c365a247a4d97dcbcc5c3abde9d6e3e2de26273f3fda8eef5073b9a96c82846020016014600086815260200190815260200160002060050154604051611176939291906136c4565b60405180910390a1505050565b61118b612c42565b816000808281526015602052604090205460ff1660058111156111b0576111b0612d23565b036111ec5760405162461bcd60e51b815260206004820152600c60248201526b536c6f74206973206672656560a01b60448201526064016104f5565b6000838152601560205260409020611202612c42565b600180830154600090815260136020908152604091829020825160a0808201855282546001600160a01b03168252845160e0810186529583015467ffffffffffffffff9081168752600284015487860152600384015487870152600484015460608801526005840154608088015260068401549187019190915260078301541660c08601529182019390935281518083018352600884018054929493850192829082906112ae9061318c565b80601f01602080910402602001604051908101604052809291908181526020018280546112da9061318c565b80156113275780601f106112fc57610100808354040283529160200191611327565b820191906000526020600020905b81548152906001019060200180831161130a57829003601f168201915b505050918352505060019190910154602091820152908252600a83015482820152600b9092015460409091015290825260039092015491810191909152915050919050565b60008181526015602052604081206001810154820361138e5750600092915050565b600061139d82600101546104a1565b90506004825460ff1660058111156113b7576113b7612d23565b036113c6575060049392505050565b60028160048111156113da576113da612d23565b036113e9575060059392505050565b60038160048111156113fd576113fd612d23565b0361140c575060029392505050565b600481600481111561142057611420612d23565b0361142f575060039392505050565b505460ff1692915050565b60006108f98261144861232e565b6126ea565b600082815260136020908152604080832060149092529091206005015442116114b85760405162461bcd60e51b815260206004820152601960248201527f52657175657374206e6f74207965742074696d6564206f75740000000000000060448201526064016104f5565b80546001600160a01b031633146115115760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420636c69656e7420616464726573730000000000000000000060448201526064016104f5565b600083815260146020526040812090815460ff16600481111561153657611536612d23565b146115835760405162461bcd60e51b815260206004820152600d60248201527f496e76616c69642073746174650000000000000000000000000000000000000060448201526064016104f5565b805460ff1916600217815581546115a3906001600160a01b03168561271d565b60405184907ff903f4774c7bd27355f9d7fcbc382b079b164a697a44ac5d95267a4c3cb3bb2290600090a26002810154601780548291906000906115e8908490613179565b909155505060405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561165c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116809190613740565b61070157610701613762565b6000828152601560209081526040808320600101548084526013909252909120546001600160a01b03166116f45760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064016104f5565b600083815260156020908152604080832060018101548452601383528184208251600380825260808201909452919490939092908201606080368337019050509050611747611742876108e6565b61273f565b8160008151811061175a5761175a613778565b6020908102919091010152600982015461177390612750565b8160018151811061178657611786613778565b6020026020010181815250508260030154816002815181106117aa576117aa613778565b6020026020010181815250506108de86868361275c565b6117c9612c62565b60008281526013602052604090205482906001600160a01b03166118215760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064016104f5565b600083815260136020908152604091829020825160a0808201855282546001600160a01b03168252845160e081018652600184015467ffffffffffffffff90811682526002850154828701526003850154828801526004850154606083015260058501546080830152600685015492820192909252600784015490911660c082015292810192909252825180840184526008820180549394929392850192829082906118cc9061318c565b80601f01602080910402602001604051908101604052809291908181526020018280546118f89061318c565b80156119455780601f1061191a57610100808354040283529160200191611945565b820191906000526020600020905b81548152906001019060200180831161192857829003601f168201915b505050505081526020016001820154815250508152602001600a8201548152602001600b82015481525050915050919050565b60008183106119875781611989565b825b9392505050565b600061199b8261291b565b90504281106119ec5760405162461bcd60e51b815260206004820152601860248201527f506572696f6420686173206e6f7420656e64656420796574000000000000000060448201526064016104f5565b6001546119f99082613179565b4210611a475760405162461bcd60e51b815260206004820152601460248201527f56616c69646174696f6e2074696d6564206f757400000000000000000000000060448201526064016104f5565b600083815260096020908152604080832085845290915290205460ff1615611ab15760405162461bcd60e51b815260206004820181905260248201527f50726f6f6620776173207375626d69747465642c206e6f74206d697373696e6760448201526064016104f5565b611abb83836126ea565b611b075760405162461bcd60e51b815260206004820152601660248201527f50726f6f6620776173206e6f742072657175697265640000000000000000000060448201526064016104f5565b6000838152600a6020908152604080832085845290915290205460ff1615611b715760405162461bcd60e51b815260206004820152601f60248201527f50726f6f6620616c7265616479206d61726b6564206173206d697373696e670060448201526064016104f5565b6000838152600a602090815260408083208584528252808320805460ff1916600190811790915586845260089092528220805491929091611bb3908490613179565b9091555050505050565b60008181526015602090815260408083206001810154808552601490935292206005830154611bf5906001600160a01b031685612307565b6003808401546000868152601560205260408120805460ff1916815560018082018390556002820183905593810182905560048101829055600501805473ffffffffffffffffffffffffffffffffffffffff191690558383018054929392909190611c61908490613111565b909155505060405181815283907f1d31c9f8dea6e179f6a050db117595feea8937029ea51f5168a4780be7e8f5529060200160405180910390a2600085815260086020526040812055600083815260136020526040812060018085015490820154919291611cd9919067ffffffffffffffff16613111565b600783015490915067ffffffffffffffff1681118015611d0e57506001845460ff166004811115611d0c57611d0c612d23565b145b15611d5a57835460ff19166004178455611d29600142613111565b600485015560405185907f4769361a442504ecaf038f35e119bcccdd5e42096b24c09e3c17fd17c6684c0290600090a25b50505050505050565b60008481526013602052604090205484906001600160a01b0316611dbb5760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064016104f5565b60008581526014602090815260408083206013909252909120815460ff191660031782558054611df4906001600160a01b03168861271d565b60008681526015602052604090206005810154611e1a906001600160a01b031688612307565b6000888152601360209081526040808320815160a0808201845282546001600160a01b03168252835160e081018552600184015467ffffffffffffffff90811682526002850154828801526003850154828701526004850154606083015260058501546080830152600685015492820192909252600784015490911660c08201529381019390935281518083018352600882018054611f6f9594850192919082908290611ec69061318c565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef29061318c565b8015611f3f5780601f10611f1457610100808354040283529160200191611f3f565b820191906000526020600020905b815481529060010190602001808311611f2257829003601f168201915b505050505081526020016001820154815250508152602001600a8201548152602001600b8201548152505061292e565b6004830154909150611f818183613179565b60178054600090611f93908490613179565b90915550508254600490849060ff1916600183021790555060405163a9059cbb60e01b81526001600160a01b038981166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561201a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203e9190613740565b61204a5761204a613762565b60405163a9059cbb60e01b81526001600160a01b038881166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd9190613740565b6120e9576120e9613762565b50505050505050505050565b60008481526013602052604090205484906001600160a01b031661214d5760405162461bcd60e51b815260206004820152600f60248201526e155b9adb9bdddb881c995c5d595cdd608a1b60448201526064016104f5565b60008481526015602052604090206005810154612173906001600160a01b031686612307565b60006121838783600201546123c1565b60048301549091506121958183613179565b601780546000906121a7908490613179565b90915550508254600490849060ff1916600183021790555060405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561222e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122529190613740565b61225e5761225e613762565b60405163a9059cbb60e01b81526001600160a01b038681166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156122cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f19190613740565b6122fd576122fd613762565b5050505050505050565b6001600160a01b0382166000908152600c60205260409020612329908261294a565b505050565b6000610c3842612956565b6000611989612348848461234d565b612982565b60008061235c6101004361313a565b600454909150600090610100906123769060ff168661314e565b612380919061313a565b905060006123906101008761313a565b90506000610100826123a28587613179565b6123ac9190613179565b6123b6919061313a565b979650505050505050565b60008281526013602090815260408083206014909252822060050154831061242b5760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206265666f72652065787069727900000000000000000060448201526064016104f5565b60058101548361244a8660009081526014602052604090206005015490565b6124549190613111565b610499919061314e565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830181905260448301849052917f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303816000875af11580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190613740565b6123295760405162461bcd60e51b815260206004820152600f60248201527f5472616e73666572206661696c6564000000000000000000000000000000000060448201526064016104f5565b6001600160a01b0382166000908152600c6020526040902061232990826129dc565b60606000611989836129e8565b600080600061259e8561136c565b600086815260066020526040812054919250906125ba90612956565b905060018260058111156125d0576125d0612d23565b1415806125e457506125e28582612a44565b155b156125f75760008093509350505061266c565b612601868661234d565b9250600061260e84612982565b600254909150600090610100906126289060ff168261378e565b60008a8152600760205260409020546126459161ffff169061314e565b61264f9190613165565b90508015806126655750612663818361313a565b155b9550505050505b9250929050565b60008160405160200161268691906130e8565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0382166000908152600b6020526040902061232990826129dc565b60006126d08261292e565b6020830151516108f9919067ffffffffffffffff1661314e565b60008060006126f98585612590565b9092509050818015612714575060025460ff90811690821610155b95945050505050565b6001600160a01b0382166000908152600b60205260409020612329908261294a565b600060ff1982168161049982612a4e565b60008061198983612a4e565b60008381526009602052604081209061277361232e565b815260208101919091526040016000205460ff16156127d45760405162461bcd60e51b815260206004820152601760248201527f50726f6f6620616c7265616479207375626d697474656400000000000000000060448201526064016104f5565b6005546040517f94c8919d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906394c8919d9061281f90859085906004016137a9565b602060405180830381865afa15801561283c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128609190613740565b6128ac5760405162461bcd60e51b815260206004820152600d60248201527f496e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016104f5565b60008381526009602052604081206001916128c561232e565b815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3b989d183b84b02259d7c14b34a9c9eb0fccb4c355a920d25e581e25aef4993d8360405161117691815260200190565b60006108f961292983612ac0565b612acd565b602081015160808101516040909101516000916108f99161314e565b60006119898383612af9565b60006108f97f000000000000000000000000000000000000000000000000000000000000000083613165565b60008060ff8316612994600143613111565b61299e9190613111565b40905060008190036129b2576129b2613762565b60408051602081018390520160405160208183030381529060405280519060200120915050919050565b60006119898383612bf3565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a3857602002820191906000526020600020905b815481526020019060010190808311612a24575b50505050509050919050565b6000818311611989565b7fff00000000000000000000000000000000000000000000000000000000000000811660015b60208110156105ad57600891821c91612a8e90829061314e565b83901b7fff00000000000000000000000000000000000000000000000000000000000000169190911790600101612a74565b60006108f9826001613179565b60006108f97f00000000000000000000000000000000000000000000000000000000000000008361314e565b60008181526001830160205260408120548015612be2576000612b1d600183613111565b8554909150600090612b3190600190613111565b9050818114612b96576000866000018281548110612b5157612b51613778565b9060005260206000200154905080876000018481548110612b7457612b74613778565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612ba757612ba7613854565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108f9565b60009150506108f9565b5092915050565b6000818152600183016020526040812054612c3a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108f9565b5060006108f9565b6040518060400160405280612c55612c62565b8152602001600081525090565b6040518060a0016040528060006001600160a01b03168152602001612cd16040518060e00160405280600067ffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600067ffffffffffffffff1681525090565b8152602001612cf6604051806040016040528060608152602001600080191681525090565b815260006020820181905260409091015290565b600060208284031215612d1c57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6020810160058310612d4d57612d4d612d23565b91905290565b60008060408385031215612d6657600080fd5b50508035926020909101359150565b6001600160a01b0381168114610c4757600080fd5b600080600060608486031215612d9f57600080fd5b833592506020840135612db181612d75565b91506040840135612dc181612d75565b809150509250925092565b600061010082840312156105ad57600080fd5b60008060006101408486031215612df557600080fd5b8335925060208401359150612e0d8560408601612dcc565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015612e4e57835183529284019291840191600101612e32565b50909695505050505050565b6000815180845260005b81811015612e8057602081850181015186830182015201612e64565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000825160ff815116602084015260ff602082015116604084015261ffff604082015116606084015260ff606082015116608084015250602083015160a080840152805160c0840152602081015160e084015260ff604082015116610100840152606081015160a0610120850152612f20610160850182612e5a565b905060ff608083015116610140850152809250505092915050565b600060208284031215612f4d57600080fd5b813567ffffffffffffffff811115612f6457600080fd5b8201610160818503121561198957600080fd5b6000815160408452612f8c6040850182612e5a565b602093840151949093019390935250919050565b60006101606001600160a01b038351168452602083015167ffffffffffffffff808251166020870152602082015160408701526040820151606087015260608201516080870152608082015160a087015260a082015160c08701528060c08301511660e0870152505060408301518161010086015261302182860182612f77565b915050606083015161012085015260808301516101408501528091505092915050565b6020815260008251604060208401526130606060840182612fa0565b9050602084015160408401528091505092915050565b6020810160068310612d4d57612d4d612d23565b6000806040838503121561309d57600080fd5b8235915060208301356130af81612d75565b809150509250929050565b60008061012083850312156130ce57600080fd5b823591506130df8460208501612dcc565b90509250929050565b6020815260006119896020830184612fa0565b634e487b7160e01b600052601160045260246000fd5b818103818111156108f9576108f96130fb565b634e487b7160e01b600052601260045260246000fd5b60008261314957613149613124565b500690565b80820281158282048414176108f9576108f96130fb565b60008261317457613174613124565b500490565b808201808211156108f9576108f96130fb565b600181811c908216806131a057607f821691505b6020821081036105ad57634e487b7160e01b600052602260045260246000fd5b6000602082840312156131d257600080fd5b813561198981612d75565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613216576132166131dd565b60405290565b60405160a0810167ffffffffffffffff81118282101715613216576132166131dd565b60405160e0810167ffffffffffffffff81118282101715613216576132166131dd565b604051601f8201601f1916810167ffffffffffffffff8111828210171561328b5761328b6131dd565b604052919050565b67ffffffffffffffff81168114610c4757600080fd5b6000604082840312156132bb57600080fd5b6132c36131f3565b9050813567ffffffffffffffff808211156132dd57600080fd5b818401915084601f8301126132f157600080fd5b8135602082821115613305576133056131dd565b613317601f8301601f19168201613262565b9250818352868183860101111561332d57600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600081360361016081121561336657600080fd5b61336e61321c565b833561337981612d75565b815260e0601f198301121561338d57600080fd5b61339561323f565b915060208401356133a581613293565b8083525060408401356020830152606084013560408301526080840135606083015260a0840135608083015260c084013560a083015260e08401356133e981613293565b60c083015260208101919091526101008301359067ffffffffffffffff82111561341257600080fd5b61341e368386016132a9565b604082015261012084013560608201526101409093013560808401525090919050565b60006020828403121561345357600080fd5b813561198981613293565b600081356108f981613293565b60008235603e1983360301811261348157600080fd5b9190910192915050565b601f821115612329576000816000526020600020601f850160051c810160208610156134b45750805b601f850160051c820191505b818110156108de578281556001016134c0565b8135601e198336030181126134e757600080fd5b8201803567ffffffffffffffff81111561350057600080fd5b6020813603818401131561351357600080fd5b61352782613521865461318c565b8661348b565b6000601f83116001811461355d576000841561354557508482018301355b600019600386901b1c1916600185901b1786556135ba565b600086815260209020601f19851690835b8281101561358f57878501860135825593850193600190910190850161356e565b50858210156135ae5760001960f88760031b161c198585890101351681555b505060018460011b0186555b50508085013560018501555050505050565b81356135d781612d75565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550602082013561360c81613293565b60018201805467ffffffffffffffff191667ffffffffffffffff83161790555060408201356002820155606082013560038201556080820135600482015560a0820135600582015560c0820135600682015561369061366d60e0840161345e565b6007830167ffffffffffffffff821667ffffffffffffffff198254161781555050565b6136aa6136a161010084018461346b565b600883016134d3565b610120820135600a820155610140820135600b8201555050565b838152610120810183356136d781613293565b67ffffffffffffffff8082166020850152602086013560408501526040860135606085015260608601356080850152608086013560a085015260a086013560c085015260c0860135915061372a82613293565b1660e08301526101009091019190915292915050565b60006020828403121561375257600080fd5b8151801515811461198957600080fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b61ffff828116828216039080821115612bec57612bec6130fb565b823581526020808401359082015260006101208281016137d9604085016040880180358252602090810135910152565b6137f3608085016080880180358252602090810135910152565b61380d60c0850160c0880180358252602090810135910152565b61010084019190915283519081905261014083019060209081860160005b828110156138475781518552938301939083019060010161382b565b5092979650505050505050565b634e487b7160e01b600052603160045260246000fdfea264697066735822122080637d6fe8f52e0c425ed9e726213ddc10972e4b4da5a21506da13698ff43b9064736f6c63430008170033"; public MarketplaceDeploymentBase() : base(BYTECODE) { } public MarketplaceDeploymentBase(string byteCode) : base(byteCode) { } [Parameter("tuple", "configuration", 1)] public virtual MarketplaceConfig Configuration { get; set; } [Parameter("address", "token_", 2)] public virtual string Token { get; set; } [Parameter("address", "verifier", 3)] public virtual string Verifier { get; set; } } public partial class ConfigFunction : ConfigFunctionBase { } [Function("config", typeof(ConfigOutputDTO))] public class ConfigFunctionBase : FunctionMessage { } public partial class FillSlotFunction : FillSlotFunctionBase { } [Function("fillSlot")] public class FillSlotFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } [Parameter("uint256", "slotIndex", 2)] public virtual BigInteger SlotIndex { get; set; } [Parameter("tuple", "proof", 3)] public virtual Groth16Proof Proof { get; set; } } public partial class FreeSlot1Function : FreeSlot1FunctionBase { } [Function("freeSlot")] public class FreeSlot1FunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } [Parameter("address", "rewardRecipient", 2)] public virtual string RewardRecipient { get; set; } [Parameter("address", "collateralRecipient", 3)] public virtual string CollateralRecipient { get; set; } } public partial class FreeSlotFunction : FreeSlotFunctionBase { } [Function("freeSlot")] public class FreeSlotFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } } public partial class GetActiveSlotFunction : GetActiveSlotFunctionBase { } [Function("getActiveSlot", typeof(GetActiveSlotOutputDTO))] public class GetActiveSlotFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } } public partial class GetChallengeFunction : GetChallengeFunctionBase { } [Function("getChallenge", "bytes32")] public class GetChallengeFunctionBase : FunctionMessage { [Parameter("bytes32", "id", 1)] public virtual byte[] Id { get; set; } } public partial class GetHostFunction : GetHostFunctionBase { } [Function("getHost", "address")] public class GetHostFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } } public partial class GetPointerFunction : GetPointerFunctionBase { } [Function("getPointer", "uint8")] public class GetPointerFunctionBase : FunctionMessage { [Parameter("bytes32", "id", 1)] public virtual byte[] Id { get; set; } } public partial class GetRequestFunction : GetRequestFunctionBase { } [Function("getRequest", typeof(GetRequestOutputDTO))] public class GetRequestFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } } public partial class IsProofRequiredFunction : IsProofRequiredFunctionBase { } [Function("isProofRequired", "bool")] public class IsProofRequiredFunctionBase : FunctionMessage { [Parameter("bytes32", "id", 1)] public virtual byte[] Id { get; set; } } public partial class MarkProofAsMissingFunction : MarkProofAsMissingFunctionBase { } [Function("markProofAsMissing")] public class MarkProofAsMissingFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } [Parameter("uint256", "period", 2)] public virtual BigInteger Period { get; set; } } public partial class MissingProofsFunction : MissingProofsFunctionBase { } [Function("missingProofs", "uint256")] public class MissingProofsFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } } public partial class MyRequestsFunction : MyRequestsFunctionBase { } [Function("myRequests", "bytes32[]")] public class MyRequestsFunctionBase : FunctionMessage { } public partial class MySlotsFunction : MySlotsFunctionBase { } [Function("mySlots", "bytes32[]")] public class MySlotsFunctionBase : FunctionMessage { } public partial class RequestEndFunction : RequestEndFunctionBase { } [Function("requestEnd", "uint256")] public class RequestEndFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } } public partial class RequestExpiryFunction : RequestExpiryFunctionBase { } [Function("requestExpiry", "uint256")] public class RequestExpiryFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } } public partial class RequestStateFunction : RequestStateFunctionBase { } [Function("requestState", "uint8")] public class RequestStateFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } } public partial class RequestStorageFunction : RequestStorageFunctionBase { } [Function("requestStorage")] public class RequestStorageFunctionBase : FunctionMessage { [Parameter("tuple", "request", 1)] public virtual Request Request { get; set; } } public partial class SlotStateFunction : SlotStateFunctionBase { } [Function("slotState", "uint8")] public class SlotStateFunctionBase : FunctionMessage { [Parameter("bytes32", "slotId", 1)] public virtual byte[] SlotId { get; set; } } public partial class SubmitProofFunction : SubmitProofFunctionBase { } [Function("submitProof")] public class SubmitProofFunctionBase : FunctionMessage { [Parameter("bytes32", "id", 1)] public virtual byte[] Id { get; set; } [Parameter("tuple", "proof", 2)] public virtual Groth16Proof Proof { get; set; } } public partial class TokenFunction : TokenFunctionBase { } [Function("token", "address")] public class TokenFunctionBase : FunctionMessage { } public partial class WillProofBeRequiredFunction : WillProofBeRequiredFunctionBase { } [Function("willProofBeRequired", "bool")] public class WillProofBeRequiredFunctionBase : FunctionMessage { [Parameter("bytes32", "id", 1)] public virtual byte[] Id { get; set; } } public partial class WithdrawFundsFunction : WithdrawFundsFunctionBase { } [Function("withdrawFunds")] public class WithdrawFundsFunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } } public partial class WithdrawFunds1Function : WithdrawFunds1FunctionBase { } [Function("withdrawFunds")] public class WithdrawFunds1FunctionBase : FunctionMessage { [Parameter("bytes32", "requestId", 1)] public virtual byte[] RequestId { get; set; } [Parameter("address", "withdrawRecipient", 2)] public virtual string WithdrawRecipient { get; set; } } public partial class ProofSubmittedEventDTO : ProofSubmittedEventDTOBase { } [Event("ProofSubmitted")] public class ProofSubmittedEventDTOBase : IEventDTO { [Parameter("bytes32", "id", 1, false)] public virtual byte[] Id { get; set; } } public partial class RequestCancelledEventDTO : RequestCancelledEventDTOBase { } [Event("RequestCancelled")] public class RequestCancelledEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, true)] public virtual byte[] RequestId { get; set; } } public partial class RequestFailedEventDTO : RequestFailedEventDTOBase { } [Event("RequestFailed")] public class RequestFailedEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, true)] public virtual byte[] RequestId { get; set; } } public partial class RequestFulfilledEventDTO : RequestFulfilledEventDTOBase { } [Event("RequestFulfilled")] public class RequestFulfilledEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, true)] public virtual byte[] RequestId { get; set; } } public partial class SlotFilledEventDTO : SlotFilledEventDTOBase { } [Event("SlotFilled")] public class SlotFilledEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, true)] public virtual byte[] RequestId { get; set; } [Parameter("uint256", "slotIndex", 2, false)] public virtual BigInteger SlotIndex { get; set; } } public partial class SlotFreedEventDTO : SlotFreedEventDTOBase { } [Event("SlotFreed")] public class SlotFreedEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, true)] public virtual byte[] RequestId { get; set; } [Parameter("uint256", "slotIndex", 2, false)] public virtual BigInteger SlotIndex { get; set; } } public partial class StorageRequestedEventDTO : StorageRequestedEventDTOBase { } [Event("StorageRequested")] public class StorageRequestedEventDTOBase : IEventDTO { [Parameter("bytes32", "requestId", 1, false)] public virtual byte[] RequestId { get; set; } [Parameter("tuple", "ask", 2, false)] public virtual Ask Ask { get; set; } [Parameter("uint256", "expiry", 3, false)] public virtual BigInteger Expiry { get; set; } } public partial class ConfigOutputDTO : ConfigOutputDTOBase { } [FunctionOutput] public class ConfigOutputDTOBase : IFunctionOutputDTO { [Parameter("tuple", "", 1)] public virtual MarketplaceConfig ReturnValue1 { get; set; } } public partial class GetActiveSlotOutputDTO : GetActiveSlotOutputDTOBase { } [FunctionOutput] public class GetActiveSlotOutputDTOBase : IFunctionOutputDTO { [Parameter("tuple", "", 1)] public virtual ActiveSlot ReturnValue1 { get; set; } } public partial class GetChallengeOutputDTO : GetChallengeOutputDTOBase { } [FunctionOutput] public class GetChallengeOutputDTOBase : IFunctionOutputDTO { [Parameter("bytes32", "", 1)] public virtual byte[] ReturnValue1 { get; set; } } public partial class GetHostOutputDTO : GetHostOutputDTOBase { } [FunctionOutput] public class GetHostOutputDTOBase : IFunctionOutputDTO { [Parameter("address", "", 1)] public virtual string ReturnValue1 { get; set; } } public partial class GetPointerOutputDTO : GetPointerOutputDTOBase { } [FunctionOutput] public class GetPointerOutputDTOBase : IFunctionOutputDTO { [Parameter("uint8", "", 1)] public virtual byte ReturnValue1 { get; set; } } public partial class GetRequestOutputDTO : GetRequestOutputDTOBase { } [FunctionOutput] public class GetRequestOutputDTOBase : IFunctionOutputDTO { [Parameter("tuple", "", 1)] public virtual Request ReturnValue1 { get; set; } } public partial class IsProofRequiredOutputDTO : IsProofRequiredOutputDTOBase { } [FunctionOutput] public class IsProofRequiredOutputDTOBase : IFunctionOutputDTO { [Parameter("bool", "", 1)] public virtual bool ReturnValue1 { get; set; } } public partial class MissingProofsOutputDTO : MissingProofsOutputDTOBase { } [FunctionOutput] public class MissingProofsOutputDTOBase : IFunctionOutputDTO { [Parameter("uint256", "", 1)] public virtual BigInteger ReturnValue1 { get; set; } } public partial class MyRequestsOutputDTO : MyRequestsOutputDTOBase { } [FunctionOutput] public class MyRequestsOutputDTOBase : IFunctionOutputDTO { [Parameter("bytes32[]", "", 1)] public virtual List ReturnValue1 { get; set; } } public partial class MySlotsOutputDTO : MySlotsOutputDTOBase { } [FunctionOutput] public class MySlotsOutputDTOBase : IFunctionOutputDTO { [Parameter("bytes32[]", "", 1)] public virtual List ReturnValue1 { get; set; } } public partial class RequestEndOutputDTO : RequestEndOutputDTOBase { } [FunctionOutput] public class RequestEndOutputDTOBase : IFunctionOutputDTO { [Parameter("uint256", "", 1)] public virtual BigInteger ReturnValue1 { get; set; } } public partial class RequestExpiryOutputDTO : RequestExpiryOutputDTOBase { } [FunctionOutput] public class RequestExpiryOutputDTOBase : IFunctionOutputDTO { [Parameter("uint256", "", 1)] public virtual BigInteger ReturnValue1 { get; set; } } public partial class RequestStateOutputDTO : RequestStateOutputDTOBase { } [FunctionOutput] public class RequestStateOutputDTOBase : IFunctionOutputDTO { [Parameter("uint8", "", 1)] public virtual byte ReturnValue1 { get; set; } } public partial class SlotStateOutputDTO : SlotStateOutputDTOBase { } [FunctionOutput] public class SlotStateOutputDTOBase : IFunctionOutputDTO { [Parameter("uint8", "", 1)] public virtual byte ReturnValue1 { get; set; } } public partial class TokenOutputDTO : TokenOutputDTOBase { } [FunctionOutput] public class TokenOutputDTOBase : IFunctionOutputDTO { [Parameter("address", "", 1)] public virtual string ReturnValue1 { get; set; } } public partial class WillProofBeRequiredOutputDTO : WillProofBeRequiredOutputDTOBase { } [FunctionOutput] public class WillProofBeRequiredOutputDTOBase : IFunctionOutputDTO { [Parameter("bool", "", 1)] public virtual bool ReturnValue1 { get; set; } } public partial class CollateralConfig : CollateralConfigBase { } public class CollateralConfigBase { [Parameter("uint8", "repairRewardPercentage", 1)] public virtual byte RepairRewardPercentage { get; set; } [Parameter("uint8", "maxNumberOfSlashes", 2)] public virtual byte MaxNumberOfSlashes { get; set; } [Parameter("uint16", "slashCriterion", 3)] public virtual ushort SlashCriterion { get; set; } [Parameter("uint8", "slashPercentage", 4)] public virtual byte SlashPercentage { get; set; } } public partial class ProofConfig : ProofConfigBase { } public class ProofConfigBase { [Parameter("uint256", "period", 1)] public virtual BigInteger Period { get; set; } [Parameter("uint256", "timeout", 2)] public virtual BigInteger Timeout { get; set; } [Parameter("uint8", "downtime", 3)] public virtual byte Downtime { get; set; } [Parameter("string", "zkeyHash", 4)] public virtual string ZkeyHash { get; set; } [Parameter("uint8", "downtimeProduct", 5)] public virtual byte DowntimeProduct { get; set; } } public partial class MarketplaceConfig : MarketplaceConfigBase { } public class MarketplaceConfigBase { [Parameter("tuple", "collateral", 1)] public virtual CollateralConfig Collateral { get; set; } [Parameter("tuple", "proofs", 2)] public virtual ProofConfig Proofs { get; set; } } public partial class Ask : AskBase { } public class AskBase { [Parameter("uint64", "slots", 1)] public virtual ulong Slots { get; set; } [Parameter("uint256", "slotSize", 2)] public virtual BigInteger SlotSize { get; set; } [Parameter("uint256", "duration", 3)] public virtual BigInteger Duration { get; set; } [Parameter("uint256", "proofProbability", 4)] public virtual BigInteger ProofProbability { get; set; } [Parameter("uint256", "reward", 5)] public virtual BigInteger Reward { get; set; } [Parameter("uint256", "collateral", 6)] public virtual BigInteger Collateral { get; set; } [Parameter("uint64", "maxSlotLoss", 7)] public virtual ulong MaxSlotLoss { get; set; } } public partial class G1Point : G1PointBase { } public class G1PointBase { [Parameter("uint256", "x", 1)] public virtual BigInteger X { get; set; } [Parameter("uint256", "y", 2)] public virtual BigInteger Y { get; set; } } public partial class Fp2Element : Fp2ElementBase { } public class Fp2ElementBase { [Parameter("uint256", "real", 1)] public virtual BigInteger Real { get; set; } [Parameter("uint256", "imag", 2)] public virtual BigInteger Imag { get; set; } } public partial class G2Point : G2PointBase { } public class G2PointBase { [Parameter("tuple", "x", 1)] public virtual Fp2Element X { get; set; } [Parameter("tuple", "y", 2)] public virtual Fp2Element Y { get; set; } } public partial class Groth16Proof : Groth16ProofBase { } public class Groth16ProofBase { [Parameter("tuple", "a", 1)] public virtual G1Point A { get; set; } [Parameter("tuple", "b", 2)] public virtual G2Point B { get; set; } [Parameter("tuple", "c", 3)] public virtual G1Point C { get; set; } } public partial class Content : ContentBase { } public class ContentBase { [Parameter("string", "cid", 1)] public virtual string Cid { get; set; } [Parameter("bytes32", "merkleRoot", 2)] public virtual byte[] MerkleRoot { get; set; } } public partial class Request : RequestBase { } public class RequestBase { [Parameter("address", "client", 1)] public virtual string Client { get; set; } [Parameter("tuple", "ask", 2)] public virtual Ask Ask { get; set; } [Parameter("tuple", "content", 3)] public virtual Content Content { get; set; } [Parameter("uint256", "expiry", 4)] public virtual BigInteger Expiry { get; set; } [Parameter("bytes32", "nonce", 5)] public virtual byte[] Nonce { get; set; } } public partial class ActiveSlot : ActiveSlotBase { } public class ActiveSlotBase { [Parameter("tuple", "request", 1)] public virtual Request Request { get; set; } [Parameter("uint256", "slotIndex", 2)] public virtual BigInteger SlotIndex { get; set; } } } #pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.