/
erc1155-ownable.ts
98 lines (77 loc) · 3.72 KB
/
erc1155-ownable.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import { Model } from '@base/model';
import { Web3Connection } from '@base/web3-connection';
import { Web3ConnectionOptions } from '@interfaces/web3-connection-options';
import { Deployable } from '@interfaces/deployable';
import { XEvents } from '@events/x-events';
import ERC1155OwnableJson from '@abi/ERC1155Ownable.json';
import { ERC1155OwnableMethods } from '@methods/erc1155-ownable';
import * as Events from '@events/erc1155-ownable-events';
import { PastEventOptions } from 'web3-eth-contract';
import { AbiItem } from 'web3-utils';
export class ERC1155Ownable extends Model<ERC1155OwnableMethods> implements Deployable {
constructor(web3Connection: Web3Connection|Web3ConnectionOptions, contractAddress?: string) {
super(web3Connection, ERC1155OwnableJson.abi as AbiItem[], contractAddress);
}
async deployJsonAbi(uri: string) {
const deployOptions = {
data: ERC1155OwnableJson.bytecode,
arguments: [uri]
};
return this.deploy(deployOptions, this.connection.Account);
}
async balanceOf(account: string, id: number){
return Number(await this.callTx(this.contract.methods.balanceOf(account, id)));
}
async balanceOfBatch(accounts: string[], ids: number[]){
return (await this.callTx(this.contract.methods.balanceOfBatch(accounts, ids)))
.map((balance) => Number(balance));
}
async isApprovedForAll(account: string, operator: string){
return this.callTx(this.contract.methods.isApprovedForAll(account, operator));
}
async owner(){
return this.callTx(this.contract.methods.owner());
}
async safeBatchTransferFrom(from: string, to: string, ids: number[], amounts: number[], data: string){
return this.sendTx(this.contract.methods.safeBatchTransferFrom(from, to, ids, amounts, data));
}
async safeTransferFrom(from: string, to: string, id: number, amount: number, data: string){
return this.sendTx(this.contract.methods.safeTransferFrom(from, to, id, amount, data));
}
async setApprovalForAll(operator: string, approved: boolean){
return this.sendTx(this.contract.methods.setApprovalForAll(operator, approved));
}
async supportsInterface(interfaceId: string){
return this.callTx(this.contract.methods.supportsInterface(interfaceId));
}
async transferOwnership(newOwner: string){
return this.sendTx(this.contract.methods.transferOwnership(newOwner));
}
async uri(v1: number){
return this.callTx(this.contract.methods.uri(v1));
}
async setURI(uri: string){
return this.sendTx(this.contract.methods.setURI(uri));
}
async mint(to: string, tokenId: number, amount: number, data: string){
return this.sendTx(this.contract.methods.mint(to, tokenId, amount, data));
}
async mintBatch(to: string, tokenIds: number[], amounts: number[], data: string){
return this.sendTx(this.contract.methods.mintBatch(to, tokenIds, amounts, data));
}
async getApprovalForAllEvents(filter: PastEventOptions): Promise<XEvents<Events.ApprovalForAllEvent>[]> {
return this.contract.self.getPastEvents(`ApprovalForAll`, filter)
}
async getOwnershipTransferredEvents(filter: PastEventOptions): Promise<XEvents<Events.OwnershipTransferredEvent>[]> {
return this.contract.self.getPastEvents(`OwnershipTransferred`, filter)
}
async getTransferBatchEvents(filter: PastEventOptions): Promise<XEvents<Events.TransferBatchEvent>[]> {
return this.contract.self.getPastEvents(`TransferBatch`, filter)
}
async getTransferSingleEvents(filter: PastEventOptions): Promise<XEvents<Events.TransferSingleEvent>[]> {
return this.contract.self.getPastEvents(`TransferSingle`, filter)
}
async getURIEvents(filter: PastEventOptions): Promise<XEvents<Events.URIEvent>[]> {
return this.contract.self.getPastEvents(`URI`, filter)
}
}