0 txs
1 call
constructor
constructor(address _productsModuleAddress)
functions
productDiscounts
viewfunction productDiscounts(uint256 slicerId, uint256 productId, address currency) view returns (uint240 basePrice, bool isFree, uint8 discountType)
productPrice
viewfunction productPrice(uint256 slicerId, uint256 productId, address currency, uint256 quantity, address buyer, bytes params) view returns (uint256 ethPrice, uint256 currencyPrice)
productsModuleAddress
viewfunction productsModuleAddress() view returns (address)
setProductPrice
nonpayablefunction setProductPrice(uint256 slicerId, uint256 productId, tuple[] params)
events
ProductPriceSet
event ProductPriceSet(uint256 slicerId, uint256 productId, (address currency, uint240 basePrice, bool isFree, uint8 discountType, (address nft, uint80 discount, uint8 minQuantity, uint8 nftType, uint256 tokenId)[] discounts)[] params)
errors
DiscountsNotDescending
error DiscountsNotDescending((address nft, uint80 discount, uint8 minQuantity, uint8 nftType, uint256 tokenId) nft)
InvalidMinQuantity
error InvalidMinQuantity()
InvalidRelativeDiscount
error InvalidRelativeDiscount()
NotProductOwner
error NotProductOwner()
WrongCurrency
error WrongCurrency()
creation bytecode
0x60a060405234801561000f575f80fd5b5060405161188038038061188083398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b6080516117f561008b5f395f818161011c01526101e001526117f55ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c8063201352941461004e578063c736744514610102578063d12ebada14610117578063d7a3d0c814610163575b5f80fd5b6100ea61005c366004611026565b5f60208181529381526040808220855292815282812090935282529020547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81169060ff7e0100000000000000000000000000000000000000000000000000000000000082048116917f010000000000000000000000000000000000000000000000000000000000000090041683565b6040516100f9939291906110bd565b60405180910390f35b6101156101103660046112cc565b61018b565b005b61013e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f9565b610176610171366004611441565b6102cc565b604080519283526020830191909152016100f9565b6040517fe6e9280800000000000000000000000000000000000000000000000000000000815260048101849052602481018390523360448201528390839073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063e6e9280890606401602060405180830381865afa158015610225573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102499190611529565b61027f576040517f35cd3b6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61028a85858561056d565b7fd62616e5091e10183f453add57abf45c2da7aff628cd697bf580c5d041bf574c8585856040516102bd939291906115a6565b60405180910390a15050505050565b5f86815260208181526040808320888452825280832073ffffffffffffffffffffffffffffffffffffffff881684528252808320815160808101835281547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116825260ff7e0100000000000000000000000000000000000000000000000000000000000082048116151595830195909552859485949293928401917f0100000000000000000000000000000000000000000000000000000000000000900416600181111561039b5761039b611058565b60018111156103ac576103ac611058565b815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156104d5575f8481526020908190206040805160a08101825260028602909201805473ffffffffffffffffffffffffffffffffffffffff8116845269ffffffffffffffffffff740100000000000000000000000000000000000000008204169484019490945260ff7e010000000000000000000000000000000000000000000000000000000000008504811692840192909252919260608401917f01000000000000000000000000000000000000000000000000000000000000009091041660018111156104a7576104a7611058565b60018111156104b8576104b8611058565b8152602001600182015481525050815260200190600101906103d4565b5050509152505080519091507dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff165f03610547578060200151610542576040517f164fb6c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610560565b61055689898989898987610c66565b9250925050610562565b505b965096945050505050565b61059e6040805160a0810182525f808252602082018190529181018290529060608201908152602001606081525090565b60605f805f805f805b8851811015610c59578881815181106105c2576105c26116da565b6020908102919091018101515f8d815280835260408082208e83528452808220835173ffffffffffffffffffffffffffffffffffffffff1683528452908190209282015183549183015115157e01000000000000000000000000000000000000000000000000000000000000027fff000000000000000000000000000000000000000000000000000000000000009092167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911617178083556060820151919a5082907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000008360018111156106d8576106d8611058565b0217905550608089015160018201548151919950965094508585116106fd57856106ff565b845b935085841461070e5785610710565b845b92505f5b84811015610c4f5780861115610bf85760018a60600151600181111561073c5761073c611058565b036107a657612710898281518110610756576107566116da565b60200260200101516020015169ffffffffffffffffffff1611156107a6576040517fa1488d0000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8881815181106107b8576107b86116da565b60200260200101516040015160ff165f036107ff576040517fe4c236aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561088c5787898281518110610818576108186116da565b60200260200101516020015169ffffffffffffffffffff16111561088c57888181518110610848576108486116da565b60200260200101516040517f441e389c0000000000000000000000000000000000000000000000000000000081526004016108839190611707565b60405180910390fd5b88818151811061089e5761089e6116da565b60200260200101516020015169ffffffffffffffffffff16975083811015610a5c578881815181106108d2576108d26116da565b60200260200101518260010182815481106108ef576108ef6116da565b5f9182526020918290208351600290920201805492840151604085015160ff167e01000000000000000000000000000000000000000000000000000000000000027fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff69ffffffffffffffffffff90921674010000000000000000000000000000000000000000027fffff00000000000000000000000000000000000000000000000000000000000090951673ffffffffffffffffffffffffffffffffffffffff90941693909317939093179283168217815560608401519092909183917effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116177f0100000000000000000000000000000000000000000000000000000000000000836001811115610a4557610a45611058565b021790555060808201518160010155905050610c47565b868110610bf35781600101898281518110610a7957610a796116da565b6020908102919091018101518254600181810185555f948552938390208251600290920201805493830151604084015160ff167e01000000000000000000000000000000000000000000000000000000000000027fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff69ffffffffffffffffffff90921674010000000000000000000000000000000000000000027fffff00000000000000000000000000000000000000000000000000000000000090961673ffffffffffffffffffffffffffffffffffffffff90941693909317949094179384168217815560608301519294909384927effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911617907f0100000000000000000000000000000000000000000000000000000000000000908490811115610be157610be1611058565b02179055506080820151816001015550505b610c47565b81600101805480610c0b57610c0b611715565b5f8281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909301928302018181556001015590555b600101610714565b50506001016105a7565b5050505050505050505050565b5f805f610c738487610d18565b90505f815f03610cae578451610ca9907dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168961176f565b610ce1565b610ce1855f01517dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168660400151848b610f97565b905073ffffffffffffffffffffffffffffffffffffffff8916610d0657809350610d0a565b8092505b505097509795505050505050565b60608281015180516040805160a0810182525f8082526020820181905291810182905293840181905260808401819052925f805f805b85811015610f8657868181518110610d6857610d686116da565b60200260200101519450600180811115610d8457610d84611058565b85606001516001811115610d9a57610d9a611058565b03610e7457845173ffffffffffffffffffffffffffffffffffffffff8581169116141580610dcc575084608001518314155b15610e6f57845160808601516040517efdd58e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152602482019290925291169062fdd58e90604401602060405180830381865afa158015610e48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6c9190611786565b91505b610f45565b5f85606001516001811115610e8b57610e8b611058565b03610f4557845173ffffffffffffffffffffffffffffffffffffffff858116911614610f455784516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b81166004830152909116906370a0823190602401602060405180830381865afa158015610f1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f429190611786565b91505b846040015160ff168210610f7257846020015169ffffffffffffffffffff16975050505050505050610f91565b845160808601519094509250600101610d4e565b505f96505050505050505b92915050565b5f80846001811115610fab57610fab611058565b03610fcc5781610fbb848761179d565b610fc5919061176f565b9050610ff6565b6127108381039083610fde838961176f565b610fe8919061176f565b610ff291906117b0565b9150505b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611021575f80fd5b919050565b5f805f60608486031215611038575f80fd5b833592506020840135915061104f60408501610ffe565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106110ba577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b50565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681528215156020820152606081016110f583611085565b826040830152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561115357611153611103565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156111a0576111a0611103565b604052919050565b5f67ffffffffffffffff8211156111c1576111c1611103565b5060051b60200190565b80151581146110ba575f80fd5b600281106110ba575f80fd5b8035611021816111d8565b5f82601f8301126111fe575f80fd5b8135602061121361120e836111a8565b611159565b82815260a09283028501820192828201919087851115611231575f80fd5b8387015b858110156112bf5781818a03121561124b575f80fd5b611253611130565b61125c82610ffe565b81528582013569ffffffffffffffffffff81168114611279575f80fd5b8187015260408281013560ff81168114611291575f80fd5b908201526060828101356112a4816111d8565b90820152608082810135908201528452928401928101611235565b5090979650505050505050565b5f805f606084860312156112de575f80fd5b833592506020808501359250604085013567ffffffffffffffff80821115611304575f80fd5b818701915087601f830112611317575f80fd5b813561132561120e826111a8565b81815260059190911b8301840190848101908a831115611343575f80fd5b8585015b838110156114305780358581111561135d575f80fd5b860160a0818e037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215611390575f80fd5b611398611130565b6113a3898301610ffe565b815260408201357dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811681146113d5575f80fd5b818a015260608201356113e7816111cb565b60408201526113f8608083016111e4565b606082015260a08201358781111561140e575f80fd5b61141c8f8b838601016111ef565b608083015250845250918601918601611347565b508096505050505050509250925092565b5f805f805f8060c08789031215611456575f80fd5b86359550602080880135955061146e60408901610ffe565b94506060880135935061148360808901610ffe565b925060a088013567ffffffffffffffff8082111561149f575f80fd5b818a0191508a601f8301126114b2575f80fd5b8135818111156114c4576114c4611103565b6114f4847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611159565b91508082528b84828501011115611509575f80fd5b80848401858401375f848284010152508093505050509295509295509295565b5f60208284031215611539575f80fd5b8151611544816111cb565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff815116825269ffffffffffffffffffff602082015116602083015260ff6040820151166040830152606081015161159681611085565b6060830152608090810151910152565b5f6060808301868452602086818601526040606060408701528287518085526080945060808801915060808160051b890101848a015f5b838110156116c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808b8403018552815160a080850173ffffffffffffffffffffffffffffffffffffffff83511686527dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a840151168a870152888301511515898701528b83015161166c81611085565b868d0152918a01518a86018290528051928390528901915f9060c08701905b808310156116b25761169e82865161154b565b938b0193600192909201919083019061168b565b50978a01979550505091870191506001016115dd565b50909c9b505050505050505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60a08101610f91828461154b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417610f9157610f91611742565b5f60208284031215611796575f80fd5b5051919050565b81810381811115610f9157610f91611742565b5f826117e3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea164736f6c6343000817000a000000000000000000000000b9d5b99d5d0fa04dd7eb2b0cd7753317c2ea1a84