@evolutionland/evolution-js
Version:
evolution evolution-js evolutionland evolution-js-sdk evolution-land metaverse
184 lines (149 loc) • 12.6 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>erc1155/index.ts - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav >
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#apostleAllowanceToClockAuction">apostleAllowanceToClockAuction</a></li><li><a href="global.html#apostleAskWithToken">apostleAskWithToken</a></li><li><a href="global.html#apostleBidWithToken">apostleBidWithToken</a></li><li><a href="global.html#apostleBorn">apostleBorn</a></li><li><a href="global.html#apostleBornAndEnhance">apostleBornAndEnhance</a></li><li><a href="global.html#apostleBreed">apostleBreed</a></li><li><a href="global.html#apostleBreedAsk">apostleBreedAsk</a></li><li><a href="global.html#apostleBreedBid">apostleBreedBid</a></li><li><a href="global.html#apostleCancelAskWithToken">apostleCancelAskWithToken</a></li><li><a href="global.html#apostleCancelBreedAsk">apostleCancelBreedAsk</a></li><li><a href="global.html#apostleCancelHire">apostleCancelHire</a></li><li><a href="global.html#apostleClaim">apostleClaim</a></li><li><a href="global.html#apostleClaimHire">apostleClaimHire</a></li><li><a href="global.html#apostleGetAutoBreedFee">apostleGetAutoBreedFee</a></li><li><a href="global.html#apostleGetCurrentPriceByTokenId">apostleGetCurrentPriceByTokenId</a></li><li><a href="global.html#apostleGetCurrentSiringPriceByTokenId">apostleGetCurrentSiringPriceByTokenId</a></li><li><a href="global.html#apostleHire">apostleHire</a></li><li><a href="global.html#apostleHireBid">apostleHireBid</a></li><li><a href="global.html#apostleStopWork">apostleStopWork</a></li><li><a href="global.html#apostleTransfer">apostleTransfer</a></li><li><a href="global.html#apostleWork">apostleWork</a></li><li><a href="global.html#drillStopWork">drillStopWork</a></li><li><a href="global.html#drillTransfer">drillTransfer</a></li><li><a href="global.html#drillWork">drillWork</a></li><li><a href="global.html#equipmentTransfer">equipmentTransfer</a></li><li><a href="global.html#equipmentUnequip">equipmentUnequip</a></li><li><a href="global.html#erc20Allowance">erc20Allowance</a></li><li><a href="global.html#erc20AllowanceByContractAddress">erc20AllowanceByContractAddress</a></li><li><a href="global.html#erc20Approve">erc20Approve</a></li><li><a href="global.html#erc20ApproveByContractAddress">erc20ApproveByContractAddress</a></li><li><a href="global.html#erc20BalanceOf">erc20BalanceOf</a></li><li><a href="global.html#erc20TotalSupply">erc20TotalSupply</a></li><li><a href="global.html#erc20TransferByContractAddress">erc20TransferByContractAddress</a></li><li><a href="global.html#erc721IsApprovedForAll">erc721IsApprovedForAll</a></li><li><a href="global.html#erc721IsApprovedOrOwner">erc721IsApprovedOrOwner</a></li><li><a href="global.html#erc721OwnerOf">erc721OwnerOf</a></li><li><a href="global.html#erc721SetApprovalForAll">erc721SetApprovalForAll</a></li><li><a href="global.html#erc1155BalanceOf">erc1155BalanceOf</a></li><li><a href="global.html#erc1155BalanceOfBatch">erc1155BalanceOfBatch</a></li><li><a href="global.html#erc1155IsApprovedForAll">erc1155IsApprovedForAll</a></li><li><a href="global.html#erc1155SafeBatchTransferFrom">erc1155SafeBatchTransferFrom</a></li><li><a href="global.html#erc1155SetApprovalForAll">erc1155SetApprovalForAll</a></li><li><a href="global.html#farmGetStakerAddress">farmGetStakerAddress</a></li><li><a href="global.html#farmGetStakerBalanceOf">farmGetStakerBalanceOf</a></li><li><a href="global.html#farmGetStakerEarned">farmGetStakerEarned</a></li><li><a href="global.html#farmGetStakerExit">farmGetStakerExit</a></li><li><a href="global.html#farmGetStakerGetReward">farmGetStakerGetReward</a></li><li><a href="global.html#farmGetStakerStakeToken">farmGetStakerStakeToken</a></li><li><a href="global.html#farmGetStakerTotalSupply">farmGetStakerTotalSupply</a></li><li><a href="global.html#farmStakerWithdraw">farmStakerWithdraw</a></li><li><a href="global.html#furnaceBuyTreasure">furnaceBuyTreasure</a></li><li><a href="global.html#furnaceDisenchantProps">furnaceDisenchantProps</a></li><li><a href="global.html#furnaceDismantleEquipment">furnaceDismantleEquipment</a></li><li><a href="global.html#furnaceEnchantEquipment">furnaceEnchantEquipment</a></li><li><a href="global.html#furnaceEnchantProps">furnaceEnchantProps</a></li><li><a href="global.html#furnaceGetTreasurePrice">furnaceGetTreasurePrice</a></li><li><a href="global.html#furnaceGetTreasureStatus">furnaceGetTreasureStatus</a></li><li><a href="global.html#furnaceOpenTreasure">furnaceOpenTreasure</a></li><li><a href="global.html#goldRushRaffleChangeAmount">goldRushRaffleChangeAmount</a></li><li><a href="global.html#goldRushRaffleChangeInfo">goldRushRaffleChangeInfo</a></li><li><a href="global.html#goldRushRaffleChangeSubAddr">goldRushRaffleChangeSubAddr</a></li><li><a href="global.html#goldRushRaffleDraw">goldRushRaffleDraw</a></li><li><a href="global.html#goldRushRaffleExit">goldRushRaffleExit</a></li><li><a href="global.html#goldRushRaffleGetHistory">goldRushRaffleGetHistory</a></li><li><a href="global.html#goldRushRaffleJoin">goldRushRaffleJoin</a></li><li><a href="global.html#landAskWithToken">landAskWithToken</a></li><li><a href="global.html#landBatchClaimItemResource">landBatchClaimItemResource</a></li><li><a href="global.html#landBatchClaimLandResource">landBatchClaimLandResource</a></li><li><a href="global.html#landBidWithToken">landBidWithToken</a></li><li><a href="global.html#landCancelAskWithToken">landCancelAskWithToken</a></li><li><a href="global.html#landClaimItemResource">landClaimItemResource</a></li><li><a href="global.html#landClaimLand">landClaimLand</a></li><li><a href="global.html#landGetAvailableItemResources">landGetAvailableItemResources</a></li><li><a href="global.html#landGetAvailableResources">landGetAvailableResources</a></li><li><a href="global.html#landGetCurrentPriceByTokenId">landGetCurrentPriceByTokenId</a></li><li><a href="global.html#landTransfer">landTransfer</a></li><li><a href="global.html#lotteryGetPointsBalance">lotteryGetPointsBalance</a></li><li><a href="global.html#lotteryGetTotalRewardInPool">lotteryGetTotalRewardInPool</a></li><li><a href="global.html#lotteryPlayWithTicket">lotteryPlayWithTicket</a></li><li><a href="global.html#materialBalanceOfBatch">materialBalanceOfBatch</a></li><li><a href="global.html#materialBatchTransfer">materialBatchTransfer</a></li><li><a href="global.html#materialIdEncode">materialIdEncode</a></li><li><a href="global.html#pveTeamAt">pveTeamAt</a></li><li><a href="global.html#pveTeamEvict">pveTeamEvict</a></li><li><a href="global.html#pveTeamExist">pveTeamExist</a></li><li><a href="global.html#pveTeamExit">pveTeamExit</a></li><li><a href="global.html#pveTeamExits">pveTeamExits</a></li><li><a href="global.html#pveTeamJoin">pveTeamJoin</a></li><li><a href="global.html#pveTeamJoins">pveTeamJoins</a></li><li><a href="global.html#pveTeamSwap">pveTeamSwap</a></li><li><a href="global.html#uniswapBuyRING">uniswapBuyRING</a></li></ul>
</nav>
<div id="main">
<h1 class="page-title">erc1155/index.ts</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>import { ethers } from "ethers";
import type { CallbackType } from "@evo/utils/ethers/contractHelper";
import { pad0xBegin } from "@evo/utils/common/utils";
import { triggerContract, viewContract, getContract } from "@evo/utils/ethers/contractHelper";
import { TransactionResponse } from "@ethersproject/providers";
import ERC1155ABI from "@evo/config/abi/common/abi-erc1155.json";
/**
* Query if an address is an authorized operator for another address
* @param provider Provider
* @param owner The address that owns the NFTs
* @param spender The address that acts on behalf of the owner
* @param tokenContractAddress ERC1155 contract address
* @param callback Callback
* @returns any
*/
export const erc1155IsApprovedForAll = async (
provider: ethers.providers.Provider,
owner: string,
spender: string,
tokenContractAddress: string,
callback?: CallbackType
): Promise<boolean> => {
const contract = await getContract(provider, tokenContractAddress, ERC1155ABI);
const results = await viewContract(contract, "isApprovedForAll", [owner, spender]);
return results.length ? results[0] : false;
};
/**
* Get the balance of an account's tokens.
* @param provider Provider
* @param owner The address of the token holder
* @param tokenId ID of the token
* @param tokenContractAddress ERC1155 contract address
* @param callback Callback
* @returns The _owner's balance of the token type requested
*/
export const erc1155BalanceOf = async (
provider: ethers.providers.Provider,
owner: string,
tokenId: string,
tokenContractAddress: string,
callback?: CallbackType
): Promise<string> => {
const contract = await getContract(provider, tokenContractAddress, ERC1155ABI);
const results = await viewContract(contract, "balanceOf", [owner, tokenId]);
return results.length ? (results[0] as ethers.BigNumber).toHexString() : ethers.utils.hexValue(0);
};
/**
* Get the balance of multiple account/token pairs
* @param provider Provider
* @param owners The addresses of the token holders
* @param tokenIds ID of the tokens
* @param tokenContractAddress ERC1155 contract address
* @param callback Callback
* @returns The _owner's balance of the token types requested (i.e. balance for each (owner, id) pair)
*/
export const erc1155BalanceOfBatch = async (
provider: ethers.providers.Provider,
owners: string[],
tokenIds: string[],
tokenContractAddress: string,
callback?: CallbackType
): Promise<string> => {
const contract = await getContract(provider, tokenContractAddress, ERC1155ABI);
const results = await viewContract(contract, "balanceOfBatch", [owners, tokenIds]);
return results.length
? results[0].map((item: ethers.BigNumber) => {
return item.toHexString();
})
: [ethers.utils.hexValue(0)];
};
/**
* Enable or disable approval for a third party ("operator") to manage all of the caller's tokens.
* @param signer Signer
* @param contractAddress ERC1155 contract address
* @param spender Address of authorized operator
* @param approved Approved or Cancel Approved
* @param callback Callback
* @returns any
*/
export const erc1155SetApprovalForAll = async (
signer: ethers.Signer,
contractAddress: string,
spender: string,
approved: boolean,
callback?: CallbackType
): Promise<TransactionResponse> => {
const contract = await getContract(signer, contractAddress, ERC1155ABI);
return triggerContract(contract, "setApprovalForAll", [spender, approved], callback);
};
/**
* Transfers `_values` amount(s) of `_ids` from the `_from` address to the `_to` address specified (with safety call).
* @param signer Signer
* @param contractAddress ERC1155 contract address
* @param spender Address of authorized operator
* @param approved Approved or Cancel Approved
* @param callback Callback
* @returns any
*/
export const erc1155SafeBatchTransferFrom = async (
signer: ethers.Signer,
contractAddress: string,
spender: string,
approved: boolean,
callback?: CallbackType
): Promise<TransactionResponse> => {
const contract = await getContract(signer, contractAddress, ERC1155ABI);
return triggerContract(contract, "safeBatchTransferFrom", [spender, approved], callback);
};
</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Mon Aug 15 2022 13:54:57 GMT+0800 (China Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>
</body>
</html>