0 txs
0 calls
constructor
constructor(address adminAddress)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAddresses
viewfunction defaultAddresses() view returns (address, address, address)
getBondingCurvesDetails
viewfunction getBondingCurvesDetails(uint256 from, uint256 to) view returns (tuple[] curves, uint256 lastEvaluatedIndex, uint256 totalItems)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
maxLoop
viewfunction maxLoop() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
createBondingCurve
nonpayablefunction createBondingCurve(string curveName, tuple setUp, tuple tokenDetails, address[] adminAddresses) returns (address curve)
createBondingCurveDegen
nonpayablefunction createBondingCurveDegen(string curveName, tuple setUp, tuple tokenDetails, address[] adminAddresses, uint256 amount) returns (address curve)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMaxLoop
nonpayablefunction setMaxLoop(uint256 newMaxLoop)
takeFee
nonpayablefunction takeFee(address projectOwnerAddress, address feeCollectorAddress, uint256 amount)
updateDefaultBondingCurve
nonpayablefunction updateDefaultBondingCurve(address newDefaultBondingCurve)
updateDefaultToken
nonpayablefunction updateDefaultToken(address newDefaultToken)
updatePaymentToken
nonpayablefunction updatePaymentToken(address newToken)
events
BondingCurveCreated
event BondingCurveCreated(string name, address bondingCurve)
DefaultBondingCurveUpdated
event DefaultBondingCurveUpdated(address oldDefault, address newDefault)
DefaultTokenUpdated
event DefaultTokenUpdated(address oldDefault, address newDefault)
maxLoopUpdated
event maxLoopUpdated(uint256 maxLoop)
PaymentTokenUpdated
event PaymentTokenUpdated(address oldPaymentToken, address newPaymentToken)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
BondingCurveFactory_Admin_ZeroAddr
error BondingCurveFactory_Admin_ZeroAddr()
BondingCurveFactory_CurveName_Zero
error BondingCurveFactory_CurveName_Zero()
BondingCurveFactory_CurveNameExists
error BondingCurveFactory_CurveNameExists(string curveName)
BondingCurveFactory_DefaultCurve_NotSet
error BondingCurveFactory_DefaultCurve_NotSet()
BondingCurveFactory_DefaultCurve_ZeroAddr
error BondingCurveFactory_DefaultCurve_ZeroAddr()
BondingCurveFactory_DefaultToken_ZeroAddr
error BondingCurveFactory_DefaultToken_ZeroAddr()
BondingCurveFactory_IndexesReversed
error BondingCurveFactory_IndexesReversed()
BondingCurveFactory_MaxLoop_Zero
error BondingCurveFactory_MaxLoop_Zero()
BondingCurveFactory_Number_Zero
error BondingCurveFactory_Number_Zero()
BondingCurveFactory_ZeroAddr
error BondingCurveFactory_ZeroAddr()
creation bytecode
0x608060405260646003553480156200001657600080fd5b50604051620025ff380380620025ff8339810160408190526200003991620001b8565b60016002556001600160a01b03811662000066576040516327f3e5c760e21b815260040160405180910390fd5b620000736000826200007a565b50620001ea565b620000868282620000a5565b6000828152600160205260409020620000a0908262000146565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000142576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001013390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200015d836001600160a01b03841662000166565b90505b92915050565b6000818152600183016020526040812054620001af5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000160565b50600062000160565b600060208284031215620001cb57600080fd5b81516001600160a01b0381168114620001e357600080fd5b9392505050565b61240580620001fa6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80634ccf1b34116100ad578063c873b82911610071578063c873b82914610272578063ca15c87314610294578063d0e99094146102a7578063d547741f146102da578063ed4fe589146102ed57600080fd5b80634ccf1b341461021e5780635cca9af7146102315780639010d07c1461024457806391d1485414610257578063a217fddf1461026a57600080fd5b806320cb7bce116100f457806320cb7bce146101a1578063248a9ca3146101b45780632b01b4d5146101e55780632f2ff15d146101f857806336568abe1461020b57600080fd5b806301ffc9a71461012657806305f6711f1461014e5780630c25e968146101635780631a2ec15414610176575b600080fd5b6101396101343660046113a9565b6102f5565b60405190151581526020015b60405180910390f35b61016161015c3660046113d3565b610320565b005b610161610171366004611408565b610388565b61018961018436600461159c565b610424565b6040516001600160a01b039091168152602001610145565b6101616101af366004611641565b61046a565b6101d76101c23660046113d3565b60009081526020819052604090206001015490565b604051908152602001610145565b6101616101f3366004611408565b610543565b61016161020636600461167d565b6105df565b61016161021936600461167d565b610609565b61016161022c366004611408565b61068c565b61018961023f3660046116a9565b610728565b610189610252366004611757565b61079c565b61013961026536600461167d565b6107bb565b6101d7600081565b610285610280366004611757565b6107e4565b604051610145939291906117c9565b6101d76102a23660046113d3565b6109bf565b600454600554600654604080516001600160a01b0394851681529284166020840152921691810191909152606001610145565b6101616102e836600461167d565b6109d6565b6003546101d7565b60006001600160e01b03198216635a05180f60e01b148061031a575061031a826109fb565b92915050565b600061032b81610a30565b8160000361034c5760405163bd2b2d1960e01b815260040160405180910390fd5b60038290556040518281527fe5eeafab961b9082a9736cdfb7f1a19763c7dc65f7c43f5fb2c0b318b80d24a59060200160405180910390a15050565b600061039381610a30565b6001600160a01b0382166103ba5760405163c787ef0160e01b815260040160405180910390fd5b600454604080516001600160a01b03928316815291841660208301527fcd5ebb215c8f54d3b67dd34becb6132f66eb966e83f23e0c4df9388f0a2b6096910160405180910390a150600480546001600160a01b0319166001600160a01b0392909216919091179055565b600061042e610a3d565b600061043981610a30565b610454878761044d36899003890189611b63565b8787610a94565b9150506104616001600255565b95945050505050565b600061047581610a30565b816000036104965760405163e98404d760e01b815260040160405180910390fd5b6001600160a01b0384166104bd5760405163139f137760e11b815260040160405180910390fd5b6006546040516323b872dd60e01b81526001600160a01b038681166004830152858116602483015260448201859052909116906323b872dd906064016020604051808303816000875af1158015610518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053c9190611cb6565b5050505050565b600061054e81610a30565b6001600160a01b0382166105755760405163237ca5a360e11b815260040160405180910390fd5b600554604080516001600160a01b03928316815291841660208301527fd0d68bda7ca525a1ae99eadb886ec1aa8c0f0239913d37e1045e8fbbe1280eeb910160405180910390a150600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152602081905260409020600101546105fa81610a30565b6106048383610e2d565b505050565b6001600160a01b038116331461067e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6106888282610e4f565b5050565b600061069781610a30565b6001600160a01b0382166106be5760405163139f137760e11b815260040160405180910390fd5b600654604080516001600160a01b03928316815291841660208301527f5efdfedf5aef119c431263f0656093045dffdf44b3d8f1b0f158dc295c3a0f8e910160405180910390a150600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000610732610a3d565b600061073d81610a30565b61076a6107526103e088016103c08901611408565b61076461046089016104408a01611408565b8561046a565b610785888861077e368a90038a018a611b63565b8888610a94565b9150506107926001600255565b9695505050505050565b60008281526001602052604081206107b49083610e71565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606000808385111561080a5760405163e6b1de4d60e01b815260040160405180910390fd5b600354858503111561081e57600354850193505b60075484111561082e5760075493505b8484036001600160401b0381111561084857610848611496565b60405190808252806020026020018201604052801561089357816020015b60408051606080820183528152600060208083018290529282015282526000199092019101816108665790505b509250845b848110156109aa57600781815481106108b3576108b3611cd8565b90600052602060002090600302016040518060600160405290816000820180546108dc90611cee565b80601f016020809104026020016040519081016040528092919081815260200182805461090890611cee565b80156109555780601f1061092a57610100808354040283529160200191610955565b820191906000526020600020905b81548152906001019060200180831161093857829003601f168201915b505050918352505060018201546001600160a01b0390811660208301526002909201549091166040909101528451859088840390811061099757610997611cd8565b6020908102919091010152600101610898565b50506007549194600019909301935090919050565b600081815260016020526040812061031a90610e7d565b6000828152602081905260409020600101546109f181610a30565b6106048383610e4f565b60006001600160e01b03198216637965db0b60e01b148061031a57506301ffc9a760e01b6001600160e01b031983161461031a565b610a3a8133610e87565b50565b6002805403610a8e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610675565b60028055565b6000848103610ab6576040516304616deb60e01b815260040160405180910390fd5b60006001600160a01b031660088787604051610ad3929190611d22565b908152604051908190036020019020600101546001600160a01b031614610b1157858560405163a891cec560e01b8152600401610675929190611d5b565b6004546001600160a01b0316610b3a576040516336865d1960e21b815260040160405180910390fd5b6000338787604051602001610b5193929190611d77565b60408051601f198184030181529190528051602090910120600454909150600090610b85906001600160a01b031683610ee0565b600554909150600090610ba1906001600160a01b031684610ee0565b90506001600160a01b03811663f542033f610bbc8880611d9c565b610bc960208b018b611d9c565b878c604001356040518763ffffffff1660e01b8152600401610bf096959493929190611de2565b600060405180830381600087803b158015610c0a57600080fd5b505af1158015610c1e573d6000803e3d6000fd5b505088516001600160a01b03841660c09091015250506040805160806020601f8c018190040282018101909252606081018a81526000928291908d908d908190850183828082843760009201829052509385525050506001600160a01b03808716602084015285166040909201919091526007805460018101825591528151919250829160039091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801908190610cd69082611e78565b5060208201516001820180546001600160a01b039283166001600160a01b03199182161790915560409384015160029093018054939092169216919091179055518190600890610d29908d908d90611d22565b90815260405190819003602001902081518190610d469082611e78565b5060208201516001820180546001600160a01b03199081166001600160a01b03938416179091556040938401516002909301805490911692821692909217909155815163d71a5e4d60e01b81529085169163d71a5e4d91610db2918c91908c0135908b9060040161209a565b600060405180830381600087803b158015610dcc57600080fd5b505af1158015610de0573d6000803e3d6000fd5b505050507f29f280041d9433075fdda45c4d7537262f48538e5ee7395093f50e0e98bee7438a8a85604051610e179392919061229b565b60405180910390a1509098975050505050505050565b610e378282610f7d565b60008281526001602052604090206106049082611001565b610e598282611016565b6000828152600160205260409020610604908261107b565b60006107b48383611090565b600061031a825490565b610e9182826107bb565b61068857610e9e816110ba565b610ea98360206110cc565b604051602001610eba9291906122c7565b60408051601f198184030181529082905262461bcd60e51b82526106759160040161233c565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661031a5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610675565b610f8782826107bb565b610688576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610fbd3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006107b4836001600160a01b038416611267565b61102082826107bb565b15610688576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006107b4836001600160a01b0384166112b6565b60008260000182815481106110a7576110a7611cd8565b9060005260206000200154905092915050565b606061031a6001600160a01b03831660145b606060006110db836002612365565b6110e690600261237c565b6001600160401b038111156110fd576110fd611496565b6040519080825280601f01601f191660200182016040528015611127576020820181803683370190505b509050600360fc1b8160008151811061114257611142611cd8565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061117157611171611cd8565b60200101906001600160f81b031916908160001a9053506000611195846002612365565b6111a090600161237c565b90505b6001811115611218576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111d4576111d4611cd8565b1a60f81b8282815181106111ea576111ea611cd8565b60200101906001600160f81b031916908160001a90535060049490941c936112118161238f565b90506111a3565b5083156107b45760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610675565b60008181526001830160205260408120546112ae5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561031a565b50600061031a565b6000818152600183016020526040812054801561139f5760006112da6001836123a6565b85549091506000906112ee906001906123a6565b905081811461135357600086600001828154811061130e5761130e611cd8565b906000526020600020015490508087600001848154811061133157611331611cd8565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611364576113646123b9565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061031a565b600091505061031a565b6000602082840312156113bb57600080fd5b81356001600160e01b0319811681146107b457600080fd5b6000602082840312156113e557600080fd5b5035919050565b80356001600160a01b038116811461140357600080fd5b919050565b60006020828403121561141a57600080fd5b6107b4826113ec565b60008083601f84011261143557600080fd5b5081356001600160401b0381111561144c57600080fd5b60208301915083602082850101111561146457600080fd5b9250929050565b6000610580828403121561147e57600080fd5b50919050565b60006060828403121561147e57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516101a081016001600160401b03811182821017156114cf576114cf611496565b60405290565b60405161024081016001600160401b03811182821017156114cf576114cf611496565b600082601f83011261150957600080fd5b813560206001600160401b038083111561152557611525611496565b8260051b604051601f19603f8301168101818110848211171561154a5761154a611496565b604052938452602081870181019490810192508785111561156a57600080fd5b6020870191505b8482101561159157611582826113ec565b83529183019190830190611571565b979650505050505050565b60008060008060006105e086880312156115b557600080fd5b85356001600160401b03808211156115cc57600080fd5b6115d889838a01611423565b90975095508591506115ed8960208a0161146b565b94506105a088013591508082111561160457600080fd5b61161089838a01611484565b93506105c088013591508082111561162757600080fd5b50611634888289016114f8565b9150509295509295909350565b60008060006060848603121561165657600080fd5b61165f846113ec565b925061166d602085016113ec565b9150604084013590509250925092565b6000806040838503121561169057600080fd5b823591506116a0602084016113ec565b90509250929050565b60008060008060008061060087890312156116c357600080fd5b86356001600160401b03808211156116da57600080fd5b6116e68a838b01611423565b90985096508691506116fb8a60208b0161146b565b95506105a089013591508082111561171257600080fd5b61171e8a838b01611484565b94506105c089013591508082111561173557600080fd5b5061174289828a016114f8565b9250506105e087013590509295509295509295565b6000806040838503121561176a57600080fd5b50508035926020909101359150565b60005b8381101561179457818101518382015260200161177c565b50506000910152565b600081518084526117b5816020860160208601611779565b601f01601f19169290920160200192915050565b600060608083016060845280875180835260808601915060808160051b87010192506020808a0160005b8381101561184a57888603607f19018552815180518888526118178989018261179d565b828601516001600160a01b039081168a8801526040938401511692909801919091525093820193908201906001016117f3565b505086019790975250604090930193909352509392505050565b803561ffff8116811461140357600080fd5b803563ffffffff8116811461140357600080fd5b600060e0828403121561189c57600080fd5b60405160e081018181106001600160401b03821117156118be576118be611496565b6040529050806118cd83611864565b81526118db60208401611864565b60208201526118ec60408401611864565b60408201526118fd60608401611864565b606082015261190e60808401611864565b608082015261191f60a08401611876565b60a082015261193060c084016113ec565b60c08201525092915050565b600060c0828403121561194e57600080fd5b60405160c081018181106001600160401b038211171561197057611970611496565b6040528235815290508061198660208401611864565b602082015261199760408401611864565b60408201526119a860608401611864565b60608201526119b960808401611864565b60808201526119ca60a084016113ec565b60a08201525092915050565b6000608082840312156119e857600080fd5b604051608081018181106001600160401b0382111715611a0a57611a0a611496565b604052905080611a1983611876565b8152611a2760208401611876565b6020820152611a3860408401611876565b6040820152611a4960608401611864565b60608201525092915050565b60006101a08284031215611a6857600080fd5b611a706114ac565b9050611a7b82611876565b8152611a8960208301611876565b6020820152611a9a60408301611876565b6040820152611aab60608301611876565b6060820152611abc60808301611876565b6080820152611acd60a08301611876565b60a0820152611ade60c08301611876565b60c0820152611aef60e08301611876565b60e0820152610100611b02818401611876565b90820152610120611b14838201611876565b90820152610140611b26838201611876565b90820152610160611b38838201611876565b90820152610180611b4a838201611876565b9082015292915050565b80356002811061140357600080fd5b60006105808284031215611b7657600080fd5b611b7e6114d5565b611b88848461188a565b8152611b978460e0850161193c565b60208201526101a0611bab858286016119d6565b6040830152610220611bbf86828701611a55565b6060840152611bd16103c086016113ec565b6080840152611be36103e086016113ec565b60a0840152611bf561040086016113ec565b60c0840152611c0761042086016113ec565b60e0840152611c1961044086016113ec565b610100840152611c2c61046086016113ec565b610120840152611c3f61048086016113ec565b610140840152611c526104a086016113ec565b610160840152611c656104c08601611864565b610180840152611c786104e08601611b54565b828401526105008501356101c08401526105208501356101e08401526105408501356102008401526105608501358184015250508091505092915050565b600060208284031215611cc857600080fd5b815180151581146107b457600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680611d0257607f821691505b60208210810361147e57634e487b7160e01b600052602260045260246000fd5b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000611d6f602083018486611d32565b949350505050565b6001600160a01b03841681526040602082018190526000906104619083018486611d32565b6000808335601e19843603018112611db357600080fd5b8301803591506001600160401b03821115611dcd57600080fd5b60200191503681900382131561146457600080fd5b608081526000611df660808301888a611d32565b8281036020840152611e09818789611d32565b6001600160a01b03959095166040840152505060600152949350505050565b601f821115610604576000816000526020600020601f850160051c81016020861015611e515750805b601f850160051c820191505b81811015611e7057828155600101611e5d565b505050505050565b81516001600160401b03811115611e9157611e91611496565b611ea581611e9f8454611cee565b84611e28565b602080601f831160018114611eda5760008415611ec25750858301515b600019600386901b1c1916600185901b178555611e70565b600085815260208120601f198616915b82811015611f0957888601518255948401946001909101908401611eea565b5085821015611f275787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805163ffffffff1682526020810151611f58602084018263ffffffff169052565b506040810151611f70604084018263ffffffff169052565b506060810151611f88606084018263ffffffff169052565b506080810151611fa0608084018263ffffffff169052565b5060a0810151611fb860a084018263ffffffff169052565b5060c0810151611fd060c084018263ffffffff169052565b5060e0810151611fe860e084018263ffffffff169052565b506101008181015163ffffffff908116918401919091526101208083015182169084015261014080830151821690840152610160808301518216908401526101809182015116910152565b6002811061205157634e487b7160e01b600052602160045260246000fd5b9052565b60008151808452602080850194506020840160005b8381101561208f5781516001600160a01b03168752958201959082019060010161206a565b509495945050505050565b60006105c061210583875161ffff8082511683528060208301511660208401528060408301511660408401528060608301511660608401528060808301511660808401525063ffffffff60a08201511660a083015260018060a01b0360c08201511660c08301525050565b602086810151805160e08601529081015161ffff908116610100860152604082015181166101208601526060820151811661014086015260808201511661016085015260a08101516001600160a01b03166101808501525060408601516101a06121a28186018363ffffffff8082511683528060208301511660208401528060408301511660408401525061ffff60608201511660608301525050565b606088015191506102206121b881870184611f37565b60808901516001600160a01b039081166103c088015260a08a015181166103e088015260c08a0151811661040088015260e08a015181166104208801526101008a015181166104408801526101208a015181166104608801526101408a015181166104808801526101608a0151166104a087015261018089015161ffff166104c08701528189015192506122506104e0870184612033565b6101c08901516105008701526101e08901516105208701526102008901516105408701528089015161056087015250505084610580840152806105a084015261079281840185612055565b6040815260006122af604083018587611d32565b905060018060a01b0383166020830152949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516122ff816017850160208801611779565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612330816028840160208801611779565b01602801949350505050565b6020815260006107b4602083018461179d565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761031a5761031a61234f565b8082018082111561031a5761031a61234f565b60008161239e5761239e61234f565b506000190190565b8181038181111561031a5761031a61234f565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202fc88c994c8e92088f023805bb3d7f03ee2f05bedd0cb04fcd4add54d96886bc64736f6c634300081700330000000000000000000000003309bbd1be6286aab44d74e8947c7c77f2b86360