diff --git a/__fixtures__/misc/enforce-null-check-true/helpers.ts b/__fixtures__/misc/enforce-null-check-true/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/enforce-null-check-true/helpers.ts +++ b/__fixtures__/misc/enforce-null-check-true/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-base64/helpers.ts b/__fixtures__/misc/output-base64/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-base64/helpers.ts +++ b/__fixtures__/misc/output-base64/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-decimals/helpers.ts b/__fixtures__/misc/output-decimals/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-decimals/helpers.ts +++ b/__fixtures__/misc/output-decimals/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-impl-interfaces-gen/helpers.ts b/__fixtures__/misc/output-impl-interfaces-gen/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-impl-interfaces-gen/helpers.ts +++ b/__fixtures__/misc/output-impl-interfaces-gen/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/amino-interface-proto-optionality/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-interface-proto-optionality/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-interface-proto-optionality/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-interface-proto-optionality/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/amino-interface/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-interface/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-interface/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-interface/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/amino-legacy/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-legacy/helpers.ts index 07fccf9e2..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-legacy/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-legacy/helpers.ts @@ -4,9 +4,7 @@ * and run the transpile command or npm scripts command that is used to regenerate this bundle. */ -import { Dec } from "@keplr-wallet/unit"; - declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; @@ -258,8 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - -export function padDecimal(decStr: string): string{ - return decStr ? new Dec(decStr).toString() : decStr; -} - diff --git a/__fixtures__/misc/output-proto-amino/amino-legacy/misc/tx.amino.ts b/__fixtures__/misc/output-proto-amino/amino-legacy/misc/tx.amino.ts index 4f1a4b8ae..dc87e9a88 100644 --- a/__fixtures__/misc/output-proto-amino/amino-legacy/misc/tx.amino.ts +++ b/__fixtures__/misc/output-proto-amino/amino-legacy/misc/tx.amino.ts @@ -2,7 +2,7 @@ import { EncodingTestForDontOmit, EncodingTestForDontOmitSDKType, EncodingTestFo import { AminoMsg, Pubkey } from "@cosmjs/amino"; import { fromUtf8, toBase64, toUtf8, fromBase64 } from "@cosmjs/encoding"; import { decodePubkey, encodePubkey } from "@cosmjs/proto-signing"; -import { padDecimal } from "../helpers"; +import { Decimal } from "@cosmjs/math"; import { AccessConfig, AccessConfigSDKType, voteOptionFromJSON } from "./eval_request"; import { Any, AnySDKType } from "../google/protobuf/any"; import { Duration, DurationSDKType } from "../google/protobuf/duration"; @@ -255,10 +255,10 @@ export const AminoConverter = { type_url: el0.typeUrl, value: el0.value })), - dec: padDecimal(dOTests.dec), - d_o_dec: padDecimal(dOTests.dODec), - decs: dOTests.decs.map(el0 => padDecimal(el0)), - d_o_decs: dOTests.dODecs.map(el0 => padDecimal(el0)) + dec: Decimal.fromUserInput(dOTests.dec, 18).atomics, + d_o_dec: Decimal.fromUserInput(dOTests.dODec, 18).atomics, + decs: dOTests.decs.map(el0 => Decimal.fromUserInput(el0, 18).atomics), + d_o_decs: dOTests.dODecs.map(el0 => Decimal.fromUserInput(el0, 18).atomics) }, o_tests: { str: oTests.str, @@ -331,10 +331,10 @@ export const AminoConverter = { type_url: el0.typeUrl, value: el0.value })), - dec: padDecimal(oTests.dec), - o_dec: padDecimal(oTests.oDec), - decs: oTests.decs.map(el0 => padDecimal(el0)), - o_decs: oTests.oDecs.map(el0 => padDecimal(el0)) + dec: Decimal.fromUserInput(oTests.dec, 18).atomics, + o_dec: Decimal.fromUserInput(oTests.oDec, 18).atomics, + decs: oTests.decs.map(el0 => Decimal.fromUserInput(el0, 18).atomics), + o_decs: oTests.oDecs.map(el0 => Decimal.fromUserInput(el0, 18).atomics) } }; }, diff --git a/__fixtures__/misc/output-proto-amino/amino-msg-no-func/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-msg-no-func/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-msg-no-func/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-msg-no-func/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/amino-msg-with-func/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-msg-with-func/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-msg-with-func/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-msg-with-func/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/amino-no-msg-with-func/helpers.ts b/__fixtures__/misc/output-proto-amino/amino-no-msg-with-func/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/amino-no-msg-with-func/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/amino-no-msg-with-func/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/no-amino-legacy-no-proto/helpers.ts b/__fixtures__/misc/output-proto-amino/no-amino-legacy-no-proto/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/no-amino-legacy-no-proto/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/no-amino-legacy-no-proto/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/no-amino-legacy/helpers.ts b/__fixtures__/misc/output-proto-amino/no-amino-legacy/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/no-amino-legacy/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/no-amino-legacy/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/no-amino-no-proto/helpers.ts b/__fixtures__/misc/output-proto-amino/no-amino-no-proto/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/no-amino-no-proto/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/no-amino-no-proto/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/no-amino/helpers.ts b/__fixtures__/misc/output-proto-amino/no-amino/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/no-amino/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/no-amino/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/proto-only-legacy/helpers.ts b/__fixtures__/misc/output-proto-amino/proto-only-legacy/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/proto-only-legacy/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/proto-only-legacy/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-proto-amino/proto-only/helpers.ts b/__fixtures__/misc/output-proto-amino/proto-only/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-proto-amino/proto-only/helpers.ts +++ b/__fixtures__/misc/output-proto-amino/proto-only/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output-scalar-default-nullable-true/helpers.ts b/__fixtures__/misc/output-scalar-default-nullable-true/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output-scalar-default-nullable-true/helpers.ts +++ b/__fixtures__/misc/output-scalar-default-nullable-true/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/misc/output/helpers.ts b/__fixtures__/misc/output/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/misc/output/helpers.ts +++ b/__fixtures__/misc/output/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputhelperfunc/helpers.ts b/__fixtures__/v-next/outputhelperfunc/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputhelperfunc/helpers.ts +++ b/__fixtures__/v-next/outputhelperfunc/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputicjs/helpers.ts b/__fixtures__/v-next/outputicjs/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputicjs/helpers.ts +++ b/__fixtures__/v-next/outputicjs/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputinstantrpc/helpers.ts b/__fixtures__/v-next/outputinstantrpc/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputinstantrpc/helpers.ts +++ b/__fixtures__/v-next/outputinstantrpc/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputosmojs/helpers.ts b/__fixtures__/v-next/outputosmojs/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputosmojs/helpers.ts +++ b/__fixtures__/v-next/outputosmojs/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputsign/helpers.ts b/__fixtures__/v-next/outputsign/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputsign/helpers.ts +++ b/__fixtures__/v-next/outputsign/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputv2/helpers.ts b/__fixtures__/v-next/outputv2/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputv2/helpers.ts +++ b/__fixtures__/v-next/outputv2/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputv3/helpers.ts b/__fixtures__/v-next/outputv3/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputv3/helpers.ts +++ b/__fixtures__/v-next/outputv3/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/__fixtures__/v-next/outputv4/helpers.ts b/__fixtures__/v-next/outputv4/helpers.ts index c78a8db51..b0f2cd862 100644 --- a/__fixtures__/v-next/outputv4/helpers.ts +++ b/__fixtures__/v-next/outputv4/helpers.ts @@ -256,4 +256,3 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } - diff --git a/packages/ast/src/encoding/amino/converter/__snapshots__/amino-converter.spec.ts.snap b/packages/ast/src/encoding/amino/converter/__snapshots__/amino-converter.spec.ts.snap index adbf9754b..2d93eb33c 100644 --- a/packages/ast/src/encoding/amino/converter/__snapshots__/amino-converter.spec.ts.snap +++ b/packages/ast/src/encoding/amino/converter/__snapshots__/amino-converter.spec.ts.snap @@ -232,9 +232,9 @@ exports[`cosmos/staking/v1beta1/tx AminoConverter useCosmosSDKDec 1`] = ` details: description.details }, commission: { - rate: padDecimal(commission.rate), - max_rate: padDecimal(commission.maxRate), - max_change_rate: padDecimal(commission.maxChangeRate) + rate: Decimal.fromUserInput(commission.rate, 18).atomics, + max_rate: Decimal.fromUserInput(commission.maxRate, 18).atomics, + max_change_rate: Decimal.fromUserInput(commission.maxChangeRate, 18).atomics }, min_self_delegation: minSelfDelegation, delegator_address: delegatorAddress, @@ -296,7 +296,7 @@ exports[`cosmos/staking/v1beta1/tx AminoConverter useCosmosSDKDec 1`] = ` details: description.details }, validator_address: validatorAddress, - commission_rate: padDecimal(commissionRate), + commission_rate: Decimal.fromUserInput(commissionRate, 18).atomics, min_self_delegation: minSelfDelegation }; }, diff --git a/packages/ast/src/encoding/amino/to-amino-json/utils.ts b/packages/ast/src/encoding/amino/to-amino-json/utils.ts index 9baf1663a..6a2ed4f9b 100644 --- a/packages/ast/src/encoding/amino/to-amino-json/utils.ts +++ b/packages/ast/src/encoding/amino/to-amino-json/utils.ts @@ -81,12 +81,22 @@ export const toAmino = { "cosmossdk.io/math.LegacyDec"; if (isCosmosSDKDec) { - args.context.addUtil("padDecimal"); + args.context.addUtil("Decimal"); return t.objectProperty( t.identifier(args.context.aminoCaseField(args.field)), - t.callExpression(t.identifier("padDecimal"), [ - memberExpressionOrIdentifier(args.scope), - ]) + t.memberExpression( + t.callExpression( + t.memberExpression( + t.identifier("Decimal"), + t.identifier("fromUserInput") + ), + [ + memberExpressionOrIdentifier(args.scope), + t.numericLiteral(18), + ] + ), + t.identifier("atomics") + ) ); } } @@ -495,9 +505,19 @@ export const arrayTypes = { }, stringDec(varname: string, args: ToAminoParseField) { - args.context.addUtil("padDecimal"); - return t.callExpression(t.identifier("padDecimal"), [ - memberExpressionOrIdentifier([varname]), - ]); + args.context.addUtil("Decimal"); + return t.memberExpression( + t.callExpression( + t.memberExpression( + t.identifier("Decimal"), + t.identifier("fromUserInput") + ), + [ + memberExpressionOrIdentifier([varname]), + t.numericLiteral(18), + ] + ), + t.identifier("atomics") + ); }, }; diff --git a/packages/ast/types/encoding/amino/to-amino-json/utils.d.ts b/packages/ast/types/encoding/amino/to-amino-json/utils.d.ts index 0d254f13b..81c5f5ba1 100644 --- a/packages/ast/types/encoding/amino/to-amino-json/utils.d.ts +++ b/packages/ast/types/encoding/amino/to-amino-json/utils.d.ts @@ -21,5 +21,5 @@ export declare const toAmino: { }; export declare const arrayTypes: { long(varname: string): t.CallExpression; - stringDec(varname: string, args: ToAminoParseField): t.CallExpression; + stringDec(varname: string, args: ToAminoParseField): t.MemberExpression; }; diff --git a/packages/telescope/src/helpers/internal-for-bigint.ts b/packages/telescope/src/helpers/internal-for-bigint.ts index 635313020..9308f4083 100644 --- a/packages/telescope/src/helpers/internal-for-bigint.ts +++ b/packages/telescope/src/helpers/internal-for-bigint.ts @@ -1,9 +1,7 @@ import { TelescopeOptions } from "@cosmology/types"; export const getHelperForBigint = (options: TelescopeOptions) => { - return `${options.aminoEncoding?.customTypes?.useCosmosSDKDec ? `import { Dec } from "@keplr-wallet/unit"; - - `: ""} + return ` declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; @@ -255,13 +253,5 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return BigInt(Math.trunc(number)); } -${ - options.aminoEncoding?.customTypes?.useCosmosSDKDec ? -` -export function padDecimal(decStr: string): string{ - return decStr ? new Dec(decStr).toString() : decStr; -} -` : "" -} `; }; diff --git a/packages/telescope/src/helpers/internal.ts b/packages/telescope/src/helpers/internal.ts index fc5871530..ff08a4f1d 100644 --- a/packages/telescope/src/helpers/internal.ts +++ b/packages/telescope/src/helpers/internal.ts @@ -2,9 +2,7 @@ import { TelescopeOptions } from "@cosmology/types"; export const getHelper = (options: TelescopeOptions) => { return `import * as _m0 from "protobufjs/minimal"; -import Long from 'long';${options.aminoEncoding?.customTypes?.useCosmosSDKDec ? ` -import { Dec } from "@keplr-wallet/unit"; -`: ""} +import Long from 'long'; // @ts-ignore if (_m0.util.Long !== Long) { @@ -235,11 +233,6 @@ export function fromJsonTimestamp(o: any): Timestamp { function numberToLong(number: number) { return Long.fromNumber(number); -}${options.aminoEncoding?.customTypes?.useCosmosSDKDec ? ` - -export function padDecimal(decStr: string): string{ - return decStr ? new Dec(decStr).toString() : decStr; } -`: ""} `; } \ No newline at end of file