๐Ÿค–Royalty Automation

Picardy royalty contracts have automation ability built in them, this allows easy update of royalty data on-chain using chainlink keepers and chainlink external adapters. The automation is broken into several parts.

External royalty adapter

This contract makes requests to the chainlink node, returns the royalty amount on-chain based on the ticker. It inherits the PayMaster contract interface that acts as a reserve for paying royalties.

RoyaltyAdapterV2

addPicardyReg

function addPicardyReg(address _picardyReg) external

This function is called by the Picardy Hub Admin to add the picardyReg address

addValidSaleAddress

function addValidSaleAddress(address _royaltySaleAddress) external

this function is called on the registration of automation

this function should only be called by the picardy automation Registrar

checkIsValidSaleAddress

function checkIsValidSaleAddress(address _royaltySaleAddress) external view returns (bool)

this function is called to check the validity of the royalty sale address

requestRoyaltyAmount

function requestRoyaltyAmount(address _royaltySaleAddress, address _oracle, uint256 _royaltyType, string _jobId) external

this function is called by a valid royalty sale contract to request the royalty amount to be sent to the paymaster

this function should only be called by a registered royalty sale contract

fulfillrequestRoyaltyAmount

function fulfillrequestRoyaltyAmount(bytes32 _requestId, uint256 amount, address _royaltySaleAddress) public

this function is called by the oracle to fulfill the request and send the royalty amount to the paymaster

this function should only be called by the oracle

onTokenTransfer

function onTokenTransfer(address _sender, uint256 _amount, bytes _data) external

this is an implimentation of the ERC677 callback function for LINK token

this function should only be called by the LINK token contrac

getRoyaltyLinkBalance

function getRoyaltyLinkBalance(address _royaltySaleAddress) external view returns (uint256)

this function gets the link token balance of the royalty sale contract

getPicardyReg

function getPicardyReg() external view returns (address)

this function is called to get the picardy automation registrar address

contractBalances

function contractBalances() public view returns (uint256 eth, uint256 link)

getPayMaster

function getPayMaster() external view returns (address)

getChainlinkToken

function getChainlinkToken() external view returns (address)
function withdrawLink() external

this function is called to withdraw LINK from the contract and should be called only by the picardy hub admin

function adminWithdrawLink(address _royaltyAddress) external

this function is called by the royalty admin to take out link balance from the contract

this function should only be called by the royalty admin

withdrawBalance

function withdrawBalance() external

this function is called to withdraw ETH from the contract and should be called only by the picardy hub admin

updateOraclePayment

function updateOraclePayment(uint256 _newPayment) external

ths function is called to update the oracle payment and should be called only by the picardy hub admin

cancelRequest

function cancelRequest(bytes32 _requestId, uint256 _payment, bytes4 _callbackFunctionId, uint256 _expiration) public
PayMaster

The PayMaster contract acts as a reserve for the royalty payments.

Last updated