Main Contract
Search…
MoCVendors
View Source: contracts/MoCVendors.sol​
MoCVendors - version: 0.1.12

Structs

VendorDetails

1
struct VendorDetails {
2
bool isActive,
3
uint256 markup,
4
uint256 totalPaidInMoC,
5
uint256 staking
6
}
Copied!

Contract Members

Constants & Variables
1
contract IMoC internal moc;
Copied!
​
1
contract IMoCState internal mocState;
Copied!
​
1
contract IMoCExchange internal mocExchange;
Copied!
​
1
uint8 public constant VENDORS_LIST_ARRAY_MAX_LENGTH;
Copied!
​
1
uint256 public constant VENDOR_MAX_MARKUP;
Copied!
​
1
address public vendorGuardianAddress;
Copied!
​
1
mapping(address => struct MoCVendors.VendorDetails) public vendors;
Copied!
​
1
address[] public vendorsList;
Copied!
​
1
uint256[50] private upgradeGap;
Copied!
​

VendorRegistered

Parameters
Name
Type
Description
account
address
​
markup
uint256
​

VendorUpdated

Parameters
Name
Type
Description
account
address
​
markup
uint256
​

VendorUnregistered

Parameters
Name
Type
Description
account
address
​

VendorStakeAdded

Parameters
Name
Type
Description
account
address
​
staking
uint256
​

VendorStakeRemoved

Parameters
Name
Type
Description
account
address
​
staking
uint256
​

TotalPaidInMoCReset

Parameters
Name
Type
Description
account
address
​

VendorGuardianAddressChanged

Parameters
Name
Type
Description
vendorGuardianAddress
address
​

VendorReceivedMarkup

Parameters
Name
Type
Description
vendorAdress
address
​
paidMoC
uint256
​
paidRBTC
uint256
​

Modifiers

onlyActiveVendor

Checks if vendor (msg.sender) is active
1
modifier onlyActiveVendor() internal
Copied!
Arguments

onlyVendorGuardian

Checks if address is allowed to call function
1
modifier onlyVendorGuardian() internal
Copied!
Arguments

Functions

initialize

Initializes the contract
1
function initialize(address connectorAddress, address _governor, address _vendorGuardianAddress) public nonpayable initializer
Copied!
Arguments
Name
Type
Description
connectorAddress
address
MoCConnector contract address
_governor
address
Governor contract address
_vendorGuardianAddress
address
Address which will be authorized to register and unregister vendors.

getVendorsCount

Gets the count of active registered vendors
1
function getVendorsCount() public view
2
returns(vendorsCount uint256)
Copied!
Returns
Amount of active registered vendors
Arguments

registerVendor

Allows to register a vendor
1
function registerVendor(address account, uint256 markup) public nonpayable onlyVendorGuardian
2
returns(isActive bool)
Copied!
Returns
true if vendor was registered successfully; otherwise false
Arguments
Name
Type
Description
account
address
Vendor address
markup
uint256
Markup which vendor will perceive from mint/redeem operations

unregisterVendor

Allows to unregister a vendor
1
function unregisterVendor(address account) public nonpayable onlyVendorGuardian
2
returns(isActive bool)
Copied!
Returns
false if vendor was unregistered successfully; otherwise false
Arguments
Name
Type
Description
account
address
Vendor address

addStake

Allows an active vendor (msg.sender) to add staking
1
function addStake(uint256 staking) public nonpayable onlyActiveVendor
Copied!
Arguments
Name
Type
Description
staking
uint256
Staking the vendor wants to add

removeStake

Allows an active vendor (msg.sender) to remove staking
1
function removeStake(uint256 staking) public nonpayable onlyActiveVendor
Copied!
Arguments
Name
Type
Description
staking
uint256
Staking the vendor wants to remove

updatePaidMarkup

⤾ overrides IMoCVendors.updatePaidMarkup
Allows to update paid markup to vendor
1
function updatePaidMarkup(address account, uint256 mocAmount, uint256 rbtcAmount) public nonpayable onlyWhitelisted
2
returns(bool)
Copied!
Arguments
Name
Type
Description
account
address
Vendor address
mocAmount
uint256
paid markup in MoC
rbtcAmount
uint256
paid markup in RBTC

getIsActive

⤾ overrides IMoCVendors.getIsActive
Gets if a vendor is active
1
function getIsActive(address account) public view
2
returns(bool)
Copied!
Returns
true if vendor is active; false otherwise
Arguments
Name
Type
Description
account
address
Vendor address

getMarkup

⤾ overrides IMoCVendors.getMarkup
Gets vendor markup
1
function getMarkup(address account) public view
2
returns(uint256)
Copied!
Returns
Vendor markup
Arguments
Name
Type
Description
account
address
Vendor address

getTotalPaidInMoC

⤾ overrides IMoCVendors.getTotalPaidInMoC
Gets vendor total paid in MoC
1
function getTotalPaidInMoC(address account) public view
2
returns(uint256)
Copied!
Returns
Vendor total paid in MoC
Arguments
Name
Type
Description
account
address
Vendor address

getStaking

⤾ overrides IMoCVendors.getStaking
Gets vendor staking
1
function getStaking(address account) public view
2
returns(uint256)
Copied!
Returns
Vendor staking
Arguments
Name
Type
Description
account
address
Vendor address

resetTotalPaidInMoC

⤾ overrides IMoCVendors.resetTotalPaidInMoC
Allows to reset all active vendor's total paid in MoC during settlement
1
function resetTotalPaidInMoC() public nonpayable onlyWhitelisted
Copied!
Arguments

getVendorGuardianAddress

Returns the address is authorized to register and unregister vendors.
1
function getVendorGuardianAddress() public view
2
returns(address)
Copied!
Arguments

setVendorGuardianAddress

Sets the address which will be authorized to register and unregister vendors.
1
function setVendorGuardianAddress(address _vendorGuardianAddress) public nonpayable onlyAuthorizedChanger
Copied!
Arguments
Name
Type
Description
_vendorGuardianAddress
address
Address which will be authorized to register and unregister vendors.

initializeContracts

1
function initializeContracts() internal nonpayable
Copied!
Arguments

initializeValues

1
function initializeValues(address _governor, address _vendorGuardianAddress) internal nonpayable
Copied!
Arguments
Name
Type
Description
_governor
address
​
_vendorGuardianAddress
address
​

setVendorGuardianAddressInternal

Sets the address which will be authorized to register and unregister vendors.
1
function setVendorGuardianAddressInternal(address _vendorGuardianAddress) internal nonpayable
Copied!
Arguments
Name
Type
Description
_vendorGuardianAddress
address
Address which will be authorized to register and unregister vendors.