Skip to content

Commit 8157b8a

Browse files
committed
revert: reverted some of the changes
1 parent eb66f87 commit 8157b8a

6 files changed

+166
-31
lines changed

.eslintrc

+10-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
"@typescript-eslint/no-namespace": "off",
2525
"@typescript-eslint/no-non-null-assertion": "off",
2626
"@typescript-eslint/no-empty-function": "warn",
27-
"no-inner-declarations": "off",
28-
}
27+
"no-inner-declarations": "off"
28+
},
29+
"overrides": [
30+
{
31+
"files": ["src/contracts/**/*"],
32+
"rules": {
33+
"@typescript-eslint/no-unused-vars": "off"
34+
}
35+
}
36+
]
2937
}

src/contracts/system.token.ts

+143
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
import type {Action, AssetType, NameType} from '@wharfkit/antelope'
2+
import {ABI, Asset, Blob, Name, Struct} from '@wharfkit/antelope'
3+
import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
4+
import {Contract as BaseContract} from '@wharfkit/contract'
5+
export const abiBlob = Blob.from(
6+
'DmVvc2lvOjphYmkvMS4xAAgHYWNjb3VudAABB2JhbGFuY2UFYXNzZXQFY2xvc2UAAgVvd25lcgRuYW1lBnN5bWJvbAZzeW1ib2wGY3JlYXRlAAIGaXNzdWVyBG5hbWUObWF4aW11bV9zdXBwbHkFYXNzZXQOY3VycmVuY3lfc3RhdHMAAwZzdXBwbHkFYXNzZXQKbWF4X3N1cHBseQVhc3NldAZpc3N1ZXIEbmFtZQVpc3N1ZQADAnRvBG5hbWUIcXVhbnRpdHkFYXNzZXQEbWVtbwZzdHJpbmcEb3BlbgADBW93bmVyBG5hbWUGc3ltYm9sBnN5bWJvbAlyYW1fcGF5ZXIEbmFtZQZyZXRpcmUAAghxdWFudGl0eQVhc3NldARtZW1vBnN0cmluZwh0cmFuc2ZlcgAEBGZyb20EbmFtZQJ0bwRuYW1lCHF1YW50aXR5BWFzc2V0BG1lbW8Gc3RyaW5nBgAAAAAAhWlEBWNsb3Nl7QMtLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBDbG9zZSBUb2tlbiBCYWxhbmNlCnN1bW1hcnk6ICdDbG9zZSB7e25vd3JhcCBvd25lcn194oCZcyB6ZXJvIHF1YW50aXR5IGJhbGFuY2UnCmljb246IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcnlwdG9reWxpbi9lb3Npby5jb250cmFjdHMvdjEuNy4wL2NvbnRyYWN0cy9pY29ucy90b2tlbi5wbmcjMjA3ZmY2OGIwNDA2ZWFhNTY2MThiMDhiZGE4MWQ2YTA5NTQ1NDNmMzZhZGMzMjhhYjMwNjVmMzFhNWM1ZDY1NAotLS0KCnt7b3duZXJ9fSBhZ3JlZXMgdG8gY2xvc2UgdGhlaXIgemVybyBxdWFudGl0eSBiYWxhbmNlIGZvciB0aGUge3tzeW1ib2xfdG9fc3ltYm9sX2NvZGUgc3ltYm9sfX0gdG9rZW4uCgpSQU0gd2lsbCBiZSByZWZ1bmRlZCB0byB0aGUgUkFNIHBheWVyIG9mIHRoZSB7e3N5bWJvbF90b19zeW1ib2xfY29kZSBzeW1ib2x9fSB0b2tlbiBiYWxhbmNlIGZvciB7e293bmVyfX0uAAAAAKhs1EUGY3JlYXRljgUtLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBDcmVhdGUgTmV3IFRva2VuCnN1bW1hcnk6ICdDcmVhdGUgYSBuZXcgdG9rZW4nCmljb246IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcnlwdG9reWxpbi9lb3Npby5jb250cmFjdHMvdjEuNy4wL2NvbnRyYWN0cy9pY29ucy90b2tlbi5wbmcjMjA3ZmY2OGIwNDA2ZWFhNTY2MThiMDhiZGE4MWQ2YTA5NTQ1NDNmMzZhZGMzMjhhYjMwNjVmMzFhNWM1ZDY1NAotLS0KCnt7JGFjdGlvbi5hY2NvdW50fX0gYWdyZWVzIHRvIGNyZWF0ZSBhIG5ldyB0b2tlbiB3aXRoIHN5bWJvbCB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIG1heGltdW1fc3VwcGx5fX0gdG8gYmUgbWFuYWdlZCBieSB7e2lzc3Vlcn19LgoKVGhpcyBhY3Rpb24gd2lsbCBub3QgcmVzdWx0IGFueSBhbnkgdG9rZW5zIGJlaW5nIGlzc3VlZCBpbnRvIGNpcmN1bGF0aW9uLgoKe3tpc3N1ZXJ9fSB3aWxsIGJlIGFsbG93ZWQgdG8gaXNzdWUgdG9rZW5zIGludG8gY2lyY3VsYXRpb24sIHVwIHRvIGEgbWF4aW11bSBzdXBwbHkgb2Yge3ttYXhpbXVtX3N1cHBseX19LgoKUkFNIHdpbGwgZGVkdWN0ZWQgZnJvbSB7eyRhY3Rpb24uYWNjb3VudH194oCZcyByZXNvdXJjZXMgdG8gY3JlYXRlIHRoZSBuZWNlc3NhcnkgcmVjb3Jkcy4AAAAAAKUxdgVpc3N1ZeIHLS0tCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogSXNzdWUgVG9rZW5zIGludG8gQ2lyY3VsYXRpb24Kc3VtbWFyeTogJ0lzc3VlIHt7bm93cmFwIHF1YW50aXR5fX0gaW50byBjaXJjdWxhdGlvbiBhbmQgdHJhbnNmZXIgaW50byB7e25vd3JhcCB0b3194oCZcyBhY2NvdW50JwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3J5cHRva3lsaW4vZW9zaW8uY29udHJhY3RzL3YxLjcuMC9jb250cmFjdHMvaWNvbnMvdG9rZW4ucG5nIzIwN2ZmNjhiMDQwNmVhYTU2NjE4YjA4YmRhODFkNmEwOTU0NTQzZjM2YWRjMzI4YWIzMDY1ZjMxYTVjNWQ2NTQKLS0tCgpUaGUgdG9rZW4gbWFuYWdlciBhZ3JlZXMgdG8gaXNzdWUge3txdWFudGl0eX19IGludG8gY2lyY3VsYXRpb24sIGFuZCB0cmFuc2ZlciBpdCBpbnRvIHt7dG99feKAmXMgYWNjb3VudC4KCnt7I2lmIG1lbW99fVRoZXJlIGlzIGEgbWVtbyBhdHRhY2hlZCB0byB0aGUgdHJhbnNmZXIgc3RhdGluZzoKe3ttZW1vfX0Ke3svaWZ9fQoKSWYge3t0b319IGRvZXMgbm90IGhhdmUgYSBiYWxhbmNlIGZvciB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIHF1YW50aXR5fX0sIG9yIHRoZSB0b2tlbiBtYW5hZ2VyIGRvZXMgbm90IGhhdmUgYSBiYWxhbmNlIGZvciB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIHF1YW50aXR5fX0sIHRoZSB0b2tlbiBtYW5hZ2VyIHdpbGwgYmUgZGVzaWduYXRlZCBhcyB0aGUgUkFNIHBheWVyIG9mIHRoZSB7e2Fzc2V0X3RvX3N5bWJvbF9jb2RlIHF1YW50aXR5fX0gdG9rZW4gYmFsYW5jZSBmb3Ige3t0b319LiBBcyBhIHJlc3VsdCwgUkFNIHdpbGwgYmUgZGVkdWN0ZWQgZnJvbSB0aGUgdG9rZW4gbWFuYWdlcuKAmXMgcmVzb3VyY2VzIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHJlY29yZHMuCgpUaGlzIGFjdGlvbiBkb2VzIG5vdCBhbGxvdyB0aGUgdG90YWwgcXVhbnRpdHkgdG8gZXhjZWVkIHRoZSBtYXggYWxsb3dlZCBzdXBwbHkgb2YgdGhlIHRva2VuLgAAAAAAMFWlBG9wZW66BS0tLQpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IE9wZW4gVG9rZW4gQmFsYW5jZQpzdW1tYXJ5OiAnT3BlbiBhIHplcm8gcXVhbnRpdHkgYmFsYW5jZSBmb3Ige3tub3dyYXAgb3duZXJ9fScKaWNvbjogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NyeXB0b2t5bGluL2Vvc2lvLmNvbnRyYWN0cy92MS43LjAvY29udHJhY3RzL2ljb25zL3Rva2VuLnBuZyMyMDdmZjY4YjA0MDZlYWE1NjYxOGIwOGJkYTgxZDZhMDk1NDU0M2YzNmFkYzMyOGFiMzA2NWYzMWE1YzVkNjU0Ci0tLQoKe3tyYW1fcGF5ZXJ9fSBhZ3JlZXMgdG8gZXN0YWJsaXNoIGEgemVybyBxdWFudGl0eSBiYWxhbmNlIGZvciB7e293bmVyfX0gZm9yIHRoZSB7e3N5bWJvbF90b19zeW1ib2xfY29kZSBzeW1ib2x9fSB0b2tlbi4KCklmIHt7b3duZXJ9fSBkb2VzIG5vdCBoYXZlIGEgYmFsYW5jZSBmb3Ige3tzeW1ib2xfdG9fc3ltYm9sX2NvZGUgc3ltYm9sfX0sIHt7cmFtX3BheWVyfX0gd2lsbCBiZSBkZXNpZ25hdGVkIGFzIHRoZSBSQU0gcGF5ZXIgb2YgdGhlIHt7c3ltYm9sX3RvX3N5bWJvbF9jb2RlIHN5bWJvbH19IHRva2VuIGJhbGFuY2UgZm9yIHt7b3duZXJ9fS4gQXMgYSByZXN1bHQsIFJBTSB3aWxsIGJlIGRlZHVjdGVkIGZyb20ge3tyYW1fcGF5ZXJ9feKAmXMgcmVzb3VyY2VzIHRvIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IHJlY29yZHMuAAAAAKjrsroGcmV0aXJl0AMtLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBSZW1vdmUgVG9rZW5zIGZyb20gQ2lyY3VsYXRpb24Kc3VtbWFyeTogJ1JlbW92ZSB7e25vd3JhcCBxdWFudGl0eX19IGZyb20gY2lyY3VsYXRpb24nCmljb246IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcnlwdG9reWxpbi9lb3Npby5jb250cmFjdHMvdjEuNy4wL2NvbnRyYWN0cy9pY29ucy90b2tlbi5wbmcjMjA3ZmY2OGIwNDA2ZWFhNTY2MThiMDhiZGE4MWQ2YTA5NTQ1NDNmMzZhZGMzMjhhYjMwNjVmMzFhNWM1ZDY1NAotLS0KClRoZSB0b2tlbiBtYW5hZ2VyIGFncmVlcyB0byByZW1vdmUge3txdWFudGl0eX19IGZyb20gY2lyY3VsYXRpb24sIHRha2VuIGZyb20gdGhlaXIgb3duIGFjY291bnQuCgp7eyNpZiBtZW1vfX0gVGhlcmUgaXMgYSBtZW1vIGF0dGFjaGVkIHRvIHRoZSBhY3Rpb24gc3RhdGluZzoKe3ttZW1vfX0Ke3svaWZ9fQAAAFctPM3NCHRyYW5zZmVyqgctLS0Kc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBUcmFuc2ZlciBUb2tlbnMKc3VtbWFyeTogJ1NlbmQge3tub3dyYXAgcXVhbnRpdHl9fSBmcm9tIHt7bm93cmFwIGZyb219fSB0byB7e25vd3JhcCB0b319JwppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3J5cHRva3lsaW4vZW9zaW8uY29udHJhY3RzL3YxLjcuMC9jb250cmFjdHMvaWNvbnMvdHJhbnNmZXIucG5nIzVkZmFkMGRmNzI3NzJlZTFjY2MxNTVlNjcwYzFkMTI0ZjVjNTEyMmYxZDUwMjc1NjVkZjM4YjQxODA0MmQxZGQKLS0tCgp7e2Zyb219fSBhZ3JlZXMgdG8gc2VuZCB7e3F1YW50aXR5fX0gdG8ge3t0b319LgoKe3sjaWYgbWVtb319VGhlcmUgaXMgYSBtZW1vIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2ZlciBzdGF0aW5nOgp7e21lbW99fQp7ey9pZn19CgpJZiB7e2Zyb219fSBpcyBub3QgYWxyZWFkeSB0aGUgUkFNIHBheWVyIG9mIHRoZWlyIHt7YXNzZXRfdG9fc3ltYm9sX2NvZGUgcXVhbnRpdHl9fSB0b2tlbiBiYWxhbmNlLCB7e2Zyb219fSB3aWxsIGJlIGRlc2lnbmF0ZWQgYXMgc3VjaC4gQXMgYSByZXN1bHQsIFJBTSB3aWxsIGJlIGRlZHVjdGVkIGZyb20ge3tmcm9tfX3igJlzIHJlc291cmNlcyB0byByZWZ1bmQgdGhlIG9yaWdpbmFsIFJBTSBwYXllci4KCklmIHt7dG99fSBkb2VzIG5vdCBoYXZlIGEgYmFsYW5jZSBmb3Ige3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19LCB7e2Zyb219fSB3aWxsIGJlIGRlc2lnbmF0ZWQgYXMgdGhlIFJBTSBwYXllciBvZiB0aGUge3thc3NldF90b19zeW1ib2xfY29kZSBxdWFudGl0eX19IHRva2VuIGJhbGFuY2UgZm9yIHt7dG99fS4gQXMgYSByZXN1bHQsIFJBTSB3aWxsIGJlIGRlZHVjdGVkIGZyb20ge3tmcm9tfX3igJlzIHJlc291cmNlcyB0byBjcmVhdGUgdGhlIG5lY2Vzc2FyeSByZWNvcmRzLgIAAAA4T00RMgNpNjQAAAdhY2NvdW50AAAAAACQTcYDaTY0AAAOY3VycmVuY3lfc3RhdHMAAAAAAA=='
7+
)
8+
export const abi = ABI.from(abiBlob)
9+
export namespace Types {
10+
@Struct.type('account')
11+
export class account extends Struct {
12+
@Struct.field(Asset)
13+
balance!: Asset
14+
}
15+
@Struct.type('close')
16+
export class close extends Struct {
17+
@Struct.field(Name)
18+
owner!: Name
19+
@Struct.field(Asset.Symbol)
20+
symbol!: Asset.Symbol
21+
}
22+
@Struct.type('create')
23+
export class create extends Struct {
24+
@Struct.field(Name)
25+
issuer!: Name
26+
@Struct.field(Asset)
27+
maximum_supply!: Asset
28+
}
29+
@Struct.type('currency_stats')
30+
export class currency_stats extends Struct {
31+
@Struct.field(Asset)
32+
supply!: Asset
33+
@Struct.field(Asset)
34+
max_supply!: Asset
35+
@Struct.field(Name)
36+
issuer!: Name
37+
}
38+
@Struct.type('issue')
39+
export class issue extends Struct {
40+
@Struct.field(Name)
41+
to!: Name
42+
@Struct.field(Asset)
43+
quantity!: Asset
44+
@Struct.field('string')
45+
memo!: string
46+
}
47+
@Struct.type('open')
48+
export class open extends Struct {
49+
@Struct.field(Name)
50+
owner!: Name
51+
@Struct.field(Asset.Symbol)
52+
symbol!: Asset.Symbol
53+
@Struct.field(Name)
54+
ram_payer!: Name
55+
}
56+
@Struct.type('retire')
57+
export class retire extends Struct {
58+
@Struct.field(Asset)
59+
quantity!: Asset
60+
@Struct.field('string')
61+
memo!: string
62+
}
63+
@Struct.type('transfer')
64+
export class transfer extends Struct {
65+
@Struct.field(Name)
66+
from!: Name
67+
@Struct.field(Name)
68+
to!: Name
69+
@Struct.field(Asset)
70+
quantity!: Asset
71+
@Struct.field('string')
72+
memo!: string
73+
}
74+
}
75+
export const TableMap = {
76+
accounts: Types.account,
77+
stat: Types.currency_stats,
78+
}
79+
export interface TableTypes {
80+
accounts: Types.account
81+
stat: Types.currency_stats
82+
}
83+
export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
84+
export type TableNames = keyof TableTypes
85+
export namespace ActionParams {
86+
export namespace Type {}
87+
export interface close {
88+
owner: NameType
89+
symbol: Asset.SymbolType
90+
}
91+
export interface create {
92+
issuer: NameType
93+
maximum_supply: AssetType
94+
}
95+
export interface issue {
96+
to: NameType
97+
quantity: AssetType
98+
memo: string
99+
}
100+
export interface open {
101+
owner: NameType
102+
symbol: Asset.SymbolType
103+
ram_payer: NameType
104+
}
105+
export interface retire {
106+
quantity: AssetType
107+
memo: string
108+
}
109+
export interface transfer {
110+
from: NameType
111+
to: NameType
112+
quantity: AssetType
113+
memo: string
114+
}
115+
}
116+
export interface ActionNameParams {
117+
close: ActionParams.close
118+
create: ActionParams.create
119+
issue: ActionParams.issue
120+
open: ActionParams.open
121+
retire: ActionParams.retire
122+
transfer: ActionParams.transfer
123+
}
124+
export type ActionNames = keyof ActionNameParams
125+
export class Contract extends BaseContract {
126+
constructor(args: PartialBy<ContractArgs, 'abi' | 'account'>) {
127+
super({
128+
client: args.client,
129+
abi: abi,
130+
account: args.account || Name.from('eosio.token'),
131+
})
132+
}
133+
action<T extends ActionNames>(
134+
name: T,
135+
data: ActionNameParams[T],
136+
options?: ActionOptions
137+
): Action {
138+
return super.action(name, data, options)
139+
}
140+
table<T extends TableNames>(name: T, scope?: NameType): Table<RowType<T>> {
141+
return super.table(name, scope, TableMap[name])
142+
}
143+
}

src/index.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import {Action, APIClient, Asset, AssetType, Name, NameType} from '@wharfkit/antelope'
22
import {Contract, ContractKit} from '@wharfkit/contract'
33

4+
import * as SystemTokenContract from './contracts/system.token'
5+
46
interface TokenOptions {
57
client: APIClient
68
contract?: Contract
@@ -9,21 +11,21 @@ interface TokenOptions {
911
export class Token {
1012
client: APIClient
1113
contractKit: ContractKit
12-
contract?: Contract
14+
contract: Contract
1315

1416
constructor({client, contract}: TokenOptions) {
1517
this.client = client
16-
this.contract = contract
18+
this.contract = contract || new SystemTokenContract.Contract({client})
1719
this.contractKit = new ContractKit({
18-
client: client as any,
20+
client: client,
1921
})
2022
}
2123

22-
async getContract(contractName?: string) {
24+
async getContract(contractName?: NameType) {
2325
if (contractName) {
2426
return this.contractKit.load(contractName)
2527
}
26-
return this.contract || this.contractKit.load('eosio.token')
28+
return this.contract
2729
}
2830

2931
async transfer(from: NameType, to: NameType, amount: AssetType, memo = ''): Promise<Action> {
@@ -40,9 +42,9 @@ export class Token {
4042
}
4143

4244
async balance(
43-
accountName: string,
45+
accountName: NameType,
4446
symbolCode?: Asset.SymbolCodeType,
45-
contractName?: string
47+
contractName?: NameType
4648
): Promise<Asset> {
4749
const contract = await this.getContract(contractName)
4850
const table = contract.table('accounts', accountName)

test/data/4422fa1bdbdd5e3cee74c23fc75e0e78aaab31d3.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
"status": 200,
1111
"json": {
1212
"rows": [
13-
"20670a030000000004454f5300000000"
13+
"8639a3030000000004454f5300000000"
1414
],
1515
"more": false,
1616
"next_key": ""
1717
},
18-
"text": "{\"rows\":[\"20670a030000000004454f5300000000\"],\"more\":false,\"next_key\":\"\"}"
18+
"text": "{\"rows\":[\"8639a3030000000004454f5300000000\"],\"more\":false,\"next_key\":\"\"}"
1919
}

test/data/5e885b4772861d842984526c3b03e8027cedc18a.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
"status": 200,
1111
"json": {
1212
"rows": [
13-
"20670a030000000004454f5300000000"
13+
"8639a3030000000004454f5300000000"
1414
],
1515
"more": false,
1616
"next_key": ""
1717
},
18-
"text": "{\"rows\":[\"20670a030000000004454f5300000000\"],\"more\":false,\"next_key\":\"\"}"
18+
"text": "{\"rows\":[\"8639a3030000000004454f5300000000\"],\"more\":false,\"next_key\":\"\"}"
1919
}

0 commit comments

Comments
 (0)