@asset-projects/ethers-wrapper
Version:
238 lines (237 loc) • 8.77 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getERC721TransferFromEstimateGas = exports.erc721CallStaticTransferFrom = exports.getERC721Approved = exports.erc721Approve = exports.erc721TransferFrom = exports.getERC721TokenURI = exports.getERC721OwnerOf = exports.getERC721BalanceOf = exports.getERC721TotalSupply = exports.getERC721Symbol = exports.getERC721Name = void 0;
const ethers_1 = require("ethers");
const helpers_1 = require("../../helpers");
const getERC721Contract = (provider, contractAddress) => {
return new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC721_ABI, provider);
};
const getERC721ContractSigner = (signer, contractAddress) => {
return new ethers_1.ethers.Contract(contractAddress, helpers_1.ERC721_ABI, signer);
};
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @returns Promise<string | undefined>;
*/
const getERC721Name = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const tokenName = yield contract.name();
return tokenName;
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721Name = getERC721Name;
/**
* @param provider Provider;
* @param contractAddress string ; 0xbFB3a65AE1A65D...
* @returns Promise<string | undefined>;
*/
const getERC721Symbol = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const tokenSymbol = yield contract.symbol();
return tokenSymbol;
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721Symbol = getERC721Symbol;
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @returns Promise<number | undefined>;
*/
const getERC721TotalSupply = (provider, contractAddress) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const totalSupply = (yield contract.totalSupply());
return totalSupply.toNumber();
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721TotalSupply = getERC721TotalSupply;
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param targetAddress string; 0xb3A566Ff63c...
* @returns Promise<number | undefined>;
*/
const getERC721BalanceOf = (provider, contractAddress, targetAddress) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const balanceOf = (yield contract.balanceOf(targetAddress));
return balanceOf.toNumber();
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721BalanceOf = getERC721BalanceOf;
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param tokenId number; 1, 2, ...
* @returns Promise<string | undefined>;
*/
const getERC721OwnerOf = (provider, contractAddress, tokenId) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const ownerOf = yield contract.ownerOf(tokenId);
return ownerOf;
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721OwnerOf = getERC721OwnerOf;
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param tokenId number; 1, 2, ...
* @returns Promise<string | undefined>;
*/
const getERC721TokenURI = (provider, contractAddress, tokenId) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
const tokenURI = yield contract.tokenURI(tokenId);
return tokenURI;
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721TokenURI = getERC721TokenURI;
/**
* @param signer ethers.Signer;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param fromAddress string; 0xb3A566Ff63c...
* @param toAddress string; 0xb3A566Ff63c...
* @param tokenId number; 1, 2, ...
* @param overrides TransactionFeeOptions | undefined;
* @returns Promise<ethers.providers.TransactionResponse | undefined>;
*/
const erc721TransferFrom = (signer, contractAddress, fromAddress, toAddress, tokenId, overrides) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721ContractSigner(signer, contractAddress);
const args = [fromAddress, toAddress, tokenId];
if (overrides)
args.push(overrides);
try {
const tx = yield contract.transferFrom(...args);
return tx;
}
catch (e) {
console.error(e);
return;
}
});
exports.erc721TransferFrom = erc721TransferFrom;
/**
* @param signer ethers.Signer;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param approveAddress string; 0xb3A566Ff63c...
* @param tokenId number; 1, 2, ...
* @param overrides TransactionFeeOptions | undefined;
* @returns Promise<ethers.providers.TransactionResponse | undefined>;
*/
const erc721Approve = (signer, contractAddress, approveAddress, tokenId, overrides) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721ContractSigner(signer, contractAddress);
const args = [approveAddress, tokenId];
if (overrides)
args.push(overrides);
try {
const tx = yield contract.approve(...args);
return tx;
}
catch (e) {
console.error(e);
return;
}
});
exports.erc721Approve = erc721Approve;
/**
* @param provider Provider;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param tokenId number; 1, 2, ...
* @returns Promise<string | undefined>;
*/
const getERC721Approved = (provider, contractAddress, tokenId) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721Contract(provider, contractAddress);
try {
return (yield contract.getApproved(tokenId));
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721Approved = getERC721Approved;
/**
* @param signer ethers.Signer;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param fromAddress string; 0xb3A566Ff63c...
* @param toAddress string; 0xb3A566Ff63c...
* @param tokenId number; 1, 2, ...
* @param overrides TransactionFeeOptions | undefined;
* @returns Promise<boolean>;
*/
const erc721CallStaticTransferFrom = (signer, contractAddress, fromAddress, toAddress, tokenId, overrides) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721ContractSigner(signer, contractAddress);
const args = [fromAddress, toAddress, tokenId];
if (overrides)
args.push(overrides);
try {
yield contract.callStatic.transferFrom(...args);
return true;
}
catch (e) {
console.log(e);
return false;
}
});
exports.erc721CallStaticTransferFrom = erc721CallStaticTransferFrom;
/**
* @param signer ethers.Signer;
* @param contractAddress string; 0xbFB3a65AE1A65D...
* @param fromAddress string; 0xb3A566Ff63c...
* @param toAddress string; 0xb3A566Ff63c...
* @param tokenId number; 1, 2, ...
* @param overrides TransactionFeeOptions | undefined;
* @returns Promise<BigNumber | undefined>;
*/
const getERC721TransferFromEstimateGas = (signer, contractAddress, fromAddress, toAddress, tokenId, overrides) => __awaiter(void 0, void 0, void 0, function* () {
const contract = getERC721ContractSigner(signer, contractAddress);
const args = [fromAddress, toAddress, tokenId];
if (overrides)
args.push(overrides);
try {
const result = yield contract.estimateGas.transferFrom(...args);
return result;
}
catch (e) {
console.error(e);
return;
}
});
exports.getERC721TransferFromEstimateGas = getERC721TransferFromEstimateGas;