ShareXWalletManager
Inherits: IShareXWalletManager, Initializable, AccessControl
State Variables
_wallets
mapping(uint256 userId => mapping(uint256 walletId => address walletAddr)) private _wallets
_walletIndex
uint256 private _walletIndex
Functions
validUserId
modifier validUserId(uint256 userId) ;
validWalletId
modifier validWalletId(uint256 walletId) ;
onlyAdmin
modifier onlyAdmin() ;
constructor
constructor(address admin) payable;
initialize
function initialize(address admin) external override initializer;
fund
function fund() external payable override;
batchTransfer
function batchTransfer(
uint256 userId,
uint256 walletId,
address[] calldata tokens,
address[] calldata recipients,
uint256[] calldata amounts
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
mintPowerPass
function mintPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address to,
string calldata tokenURI
)
external
override
validUserId(userId)
validWalletId(walletId)
onlyAdmin
returns (uint256 tokenId);
transferPowerPass
function transferPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address from,
address to,
uint256 tokenId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
burnPowerPass
function burnPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
uint256 tokenId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
approvePowerPass
function approvePowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address to,
uint256 tokenId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
setApprovalForAllPowerPass
function setApprovalForAllPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address operator,
bool approved
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
batchApprovePowerPass
function batchApprovePowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
uint256[] calldata tokenIds,
address[] calldata operators
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
approveAndTransferPowerPass
function approveAndTransferPowerPass(
uint256 fromUserId,
uint256 fromWalletId,
address powerPassContract,
address to,
uint256 tokenId
) external override validUserId(fromUserId) validWalletId(fromWalletId) onlyAdmin;
batchTransferPowerPass
function batchTransferPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address[] calldata from,
address[] calldata to,
uint256[] calldata tokenIds
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
getPowerPassBalance
function getPowerPassBalance(uint256 userId, uint256 walletId, address powerPassContract)
external
view
override
validUserId(userId)
validWalletId(walletId)
returns (uint256 balance);
getPowerPassApproved
function getPowerPassApproved(
uint256 userId,
uint256 walletId,
address powerPassContract,
uint256 tokenId
)
external
view
override
validUserId(userId)
validWalletId(walletId)
returns (address approved);
isApprovedForAllPowerPass
function isApprovedForAllPowerPass(
uint256 userId,
uint256 walletId,
address powerPassContract,
address operator
) external view override validUserId(userId) validWalletId(walletId) returns (bool approved);
createWallet
function createWallet(uint256 userId)
public
override
validUserId(userId)
onlyAdmin
returns (uint256 walletId, address walletAddr);
deposit
function deposit(uint256 userId, uint256 walletId, address token, uint256 amount)
public
payable
override
validUserId(userId)
validWalletId(walletId)
onlyAdmin;
withdraw
function withdraw(
uint256 userId,
uint256 walletId,
address payable to,
address token,
uint256 amount
) public override validUserId(userId) validWalletId(walletId) onlyAdmin;
transfer
function transfer(
uint256 fromUserId,
uint256 fromWalletId,
uint256 toUserId,
uint256 toWalletId,
address token,
uint256 amount
)
public
override
validUserId(fromUserId)
validUserId(toUserId)
validWalletId(fromWalletId)
validWalletId(toWalletId)
onlyAdmin;
getNativeTokenBalance
function getNativeTokenBalance(uint256 userId, uint256 walletId)
public
view
override
validUserId(userId)
validWalletId(walletId)
returns (uint256 nativeBalance);
getTokenBalance
function getTokenBalance(uint256 userId, uint256 walletId, address token)
public
view
override
validUserId(userId)
validWalletId(walletId)
returns (uint256 tokenBalance);
getWalletAddr
function getWalletAddr(uint256 userId, uint256 walletId)
public
view
override
validUserId(userId)
validWalletId(walletId)
returns (address);
getWalletIndex
function getWalletIndex() public view override returns (uint256);
_getWalletAddr
function _getWalletAddr(uint256 userId, uint256 walletId) private view returns (address);
stakePowerPass
function stakePowerPass(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256 tokenId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
stakePowerPassBatch
function stakePowerPassBatch(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256[] calldata tokenIds
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
unstakePowerPass
function unstakePowerPass(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256 tokenId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
unstakePowerPassBatch
function unstakePowerPassBatch(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256[] calldata tokenIds
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
requestPowerPassClaim
function requestPowerPassClaim(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256 amount
)
external
override
validUserId(userId)
validWalletId(walletId)
onlyAdmin
returns (uint256 requestId);
claimPowerPassReward
function claimPowerPassReward(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256 requestId
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
claimAllApprovedPowerPassRewards
function claimAllApprovedPowerPassRewards(
uint256 userId,
uint256 walletId,
address stakingContract
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
directClaimPowerPassReward
function directClaimPowerPassReward(
uint256 userId,
uint256 walletId,
address stakingContract,
uint256 amount
) external override validUserId(userId) validWalletId(walletId) onlyAdmin;
Events
WalletCreated
event WalletCreated(
uint256 indexed userId, uint256 indexed walletId, address indexed walletAddr
);
TokensDeposited
event TokensDeposited(address indexed to, uint256 indexed amount, address token);
TokensWithdrawn
event TokensWithdrawn(
address indexed from, address indexed to, uint256 indexed amount, address token
);
TokensTransferred
event TokensTransferred(
address indexed from, address indexed to, uint256 indexed amount, address token
);
PowerPassMinted
event PowerPassMinted(address indexed to, uint256 indexed tokenId, address powerPassContract);
PowerPassTransferred
event PowerPassTransferred(
address indexed from, address indexed to, uint256 indexed tokenId, address powerPassContract
);
PowerPassBurned
event PowerPassBurned(uint256 indexed tokenId, address powerPassContract);