Shuffler Management

Setup and manage Shufflers

Execute setCurator(0xNewCurator)

function setCurator(address newCurator) external onlyOwner {
        if (newCurator == curator) revert ErrorsLib.AlreadySet();

        curator = newCurator;

        emit EventsLib.SetCurator(newCurator);
    }

Execute setIsAllocator(0xNewAllocator, true). One can set the second attribute to false to revoke the allocation capacity.

function setIsAllocator(address newAllocator, bool newIsAllocator) external onlyOwner {
        if (isAllocator[newAllocator] == newIsAllocator) revert ErrorsLib.AlreadySet();

        isAllocator[newAllocator] = newIsAllocator;

        emit EventsLib.SetIsAllocator(newAllocator, newIsAllocator);
    }

Note that if no guardian is set, (which is the case at vault creation), submitting a new guardian sets it immediately as the guardian. Execute submitGuardian(0xNewGuardian)

function submitGuardian(address newGuardian) external onlyOwner {
        if (newGuardian == guardian) revert ErrorsLib.AlreadySet();
        if (pendingGuardian.validAt != 0) revert ErrorsLib.AlreadyPending();

        if (guardian == address(0)) {
            _setGuardian(newGuardian);
        } else {
            pendingGuardian.update(newGuardian, timelock);

            emit EventsLib.SubmitGuardian(newGuardian);
        }
    
  1. Execute setFeeRecipient(0xNewFeeRecipient)

  2. Execute setFee(10000000000000000) // 1%, FEE variable has 18 decimals.

The skim recipient will receive all rewards that may have been allocated to the vault, while the latter earned them by allocating liquidity on Natrium markets.

Last updated