@volare.finance/utils.js
Version:
The Blockchain Utils
118 lines • 5.72 kB
JavaScript
"use strict";
/**
* @file erc1155.ts
* @author astra <astra@volare.finance>
* @date 2022
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ERC1155 = void 0;
const tslib_1 = require("tslib");
const ethers_1 = require("ethers");
const ERC1155_json_1 = require("../artifacts/token/ERC1155.json");
const provider_1 = require("../provider");
const type_1 = require("../type");
class ERC1155 extends provider_1.Provider {
static ABI() {
return ERC1155_json_1.abi;
}
// https://eips.ethereum.org/EIPS/eip-1155#ERC1155
static SafeTransferFrom(contract, wallet, from, to, id, value, data) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return erc1155.connect(wallet).safeTransferFrom(from, to, id, value.toString(10), data);
});
}
static SafeBatchTransferFrom(contract, wallet, from, to, ids, values, data) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return erc1155.connect(wallet).safeBatchTransferFrom(from, to, ids, values.map(value => value.toString(10)), data);
});
}
static BalanceOf(contract, owner, id) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return new type_1.BigNumber((yield erc1155.balanceOf(owner, id)).toString());
});
}
static BalanceOfBatch(contract, owners, ids) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
const balances = yield erc1155.balanceOfBatch(owners, ids);
return balances.map((balance) => new type_1.BigNumber(balance.toString()));
});
}
static SetApprovalForAll(contract, wallet, operator, approved) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return erc1155.connect(wallet).setApprovalForAll(operator, approved);
});
}
static IsApprovedForAll(contract, owner, operator) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return erc1155.isApprovedForAll(owner, operator);
});
}
// https://eips.ethereum.org/EIPS/eip-1155#ERC1155Metadata_URI
static URI(contract, id) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const erc1155 = new ethers_1.Contract(contract, ERC1155.ABI(), ERC1155.provider);
return erc1155.uri(id);
});
}
constructor(contract, endpoint) {
super(endpoint);
this.contract = new ethers_1.Contract(contract, ERC1155.ABI(), this.provider);
}
// https://eips.ethereum.org/EIPS/eip-1155#ERC1155
safeTransferFrom(wallet, from, to, id, value, data) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (_a = this.contract) === null || _a === void 0 ? void 0 : _a.connect(wallet).safeTransferFrom(from, to, id, value.toString(10), data);
});
}
safeBatchTransferFrom(wallet, from, to, ids, values, data) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (_a = this.contract) === null || _a === void 0 ? void 0 : _a.connect(wallet).safeBatchTransferFrom(from, to, ids, values.map(value => value.toString(10)), data);
});
}
balanceOf(owner, id) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new type_1.BigNumber((yield ((_a = this.contract) === null || _a === void 0 ? void 0 : _a.balanceOf(owner, id))).toString());
});
}
balanceOfBatch(owners, ids) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const balances = yield ((_a = this.contract) === null || _a === void 0 ? void 0 : _a.balanceOfBatch(owners, ids));
return balances.map((balance) => new type_1.BigNumber(balance.toString()));
});
}
setApprovalForAll(wallet, operator, approved) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (_a = this.contract) === null || _a === void 0 ? void 0 : _a.connect(wallet).setApprovalForAll(operator, approved);
});
}
isApprovedForAll(owner, operator) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (_a = this.contract) === null || _a === void 0 ? void 0 : _a.isApprovedForAll(owner, operator);
});
}
// https://eips.ethereum.org/EIPS/eip-1155#ERC1155Metadata_URI
uri(id) {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (_a = this.contract) === null || _a === void 0 ? void 0 : _a.uri(id);
});
}
}
exports.ERC1155 = ERC1155;
ERC1155.TransferSingle_t0 = ethers_1.utils.id('TransferSingle(address,address,address,uint256,uint256)');
ERC1155.TransferBatch_t0 = ethers_1.utils.id('TransferBatch(address,address,address,uint256[],uint256[])');
ERC1155.ApprovalForAll_t0 = ethers_1.utils.id('ApprovalForAll(address,address,bool)');
ERC1155.URI_t0 = ethers_1.utils.id('URI(string,uint256)');
//# sourceMappingURL=erc1155.js.map