Skip to content

Commit 04ac0ab

Browse files
committed
Rollback to make spend limit optional for BasicAllowance
1 parent efe8a0a commit 04ac0ab

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@initia/initia.js",
3-
"version": "0.2.5",
3+
"version": "0.2.6",
44
"description": "The JavaScript SDK for Initia",
55
"license": "MIT",
66
"author": "InitiaLabs",

src/core/feegrant/allowances/BasicAllowance.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,27 @@ export class BasicAllowance extends JSONSerializable<
1313
BasicAllowance.Data,
1414
BasicAllowance.Proto
1515
> {
16-
public spend_limit: Coins;
16+
public spend_limit?: Coins;
1717

1818
/**
1919
* @param spend_limit spend_limit allowed to be spent as fee
2020
* @param expiration allowance's expiration
2121
*/
22-
constructor(spend_limit: Coins.Input, public expiration?: Date) {
22+
constructor(spend_limit?: Coins.Input, public expiration?: Date) {
2323
super();
2424
let hasNotPositive = false;
25-
this.spend_limit = new Coins(spend_limit);
26-
this.spend_limit.map(c => {
27-
// isPositive() from decimal.js returns true when the amount is 0.
28-
// but Coins.IsAllPositive() from cosmos-sdk will return false in same case.
29-
// so we use lessThanorEquenTo(0) instead of isPositive() == false
30-
if (num(c.amount).isLessThanOrEqualTo(0)) {
31-
hasNotPositive = true;
32-
}
33-
});
34-
if (hasNotPositive) {
25+
if (spend_limit) {
26+
this.spend_limit = new Coins(spend_limit);
27+
this.spend_limit.map(c => {
28+
// isPositive() from decimal.js returns true when the amount is 0.
29+
// but Coins.IsAllPositive() from cosmos-sdk will return false in same case.
30+
// so we use lessThanorEquenTo(0) instead of isPositive() == false
31+
if (num(c.amount).isLessThanOrEqualTo(0)) {
32+
hasNotPositive = true;
33+
}
34+
});
35+
}
36+
if (spend_limit && hasNotPositive) {
3537
throw new Error('spend_limit must be positive');
3638
}
3739
}
@@ -42,7 +44,7 @@ export class BasicAllowance extends JSONSerializable<
4244
} = data;
4345

4446
return new BasicAllowance(
45-
Coins.fromAmino(spend_limit),
47+
spend_limit ? Coins.fromAmino(spend_limit) : undefined,
4648
expiration ? new Date(expiration) : undefined
4749
);
4850
}
@@ -52,7 +54,7 @@ export class BasicAllowance extends JSONSerializable<
5254
return {
5355
type: 'cosmos-sdk/BasicAllowance',
5456
value: {
55-
spend_limit: spend_limit.toAmino(),
57+
spend_limit: spend_limit?.toAmino(),
5658
expiration: expiration?.toISOString().replace(/\.000Z$/, 'Z'),
5759
},
5860
};
@@ -61,7 +63,7 @@ export class BasicAllowance extends JSONSerializable<
6163
public static fromData(proto: BasicAllowance.Data): BasicAllowance {
6264
const { spend_limit, expiration } = proto;
6365
return new BasicAllowance(
64-
Coins.fromData(spend_limit),
66+
spend_limit ? Coins.fromData(spend_limit) : undefined,
6567
expiration ? new Date(expiration) : undefined
6668
);
6769
}
@@ -70,7 +72,7 @@ export class BasicAllowance extends JSONSerializable<
7072
const { spend_limit, expiration } = this;
7173
return {
7274
'@type': '/cosmos.feegrant.v1beta1.BasicAllowance',
73-
spend_limit: spend_limit.toData(),
75+
spend_limit: spend_limit?.toData(),
7476
expiration: expiration?.toISOString().replace(/\.000Z$/, 'Z'),
7577
};
7678
}
@@ -86,7 +88,7 @@ export class BasicAllowance extends JSONSerializable<
8688
const { spend_limit, expiration } = this;
8789
return BasicAllowance_pb.fromPartial({
8890
expiration,
89-
spendLimit: spend_limit.toProto(),
91+
spendLimit: spend_limit?.toProto(),
9092
});
9193
}
9294

@@ -106,14 +108,14 @@ export namespace BasicAllowance {
106108
export interface Amino {
107109
type: 'cosmos-sdk/BasicAllowance';
108110
value: {
109-
spend_limit: Coins.Amino;
111+
spend_limit?: Coins.Amino;
110112
expiration?: string;
111113
};
112114
}
113115

114116
export interface Data {
115117
'@type': '/cosmos.feegrant.v1beta1.BasicAllowance';
116-
spend_limit: Coins.Data;
118+
spend_limit?: Coins.Data;
117119
expiration?: string;
118120
}
119121

0 commit comments

Comments
 (0)