From 35322b0422392daa33e551a585fe2154e29a0263 Mon Sep 17 00:00:00 2001 From: Segfault <5221072+Segfaultd@users.noreply.github.com> Date: Mon, 10 May 2021 16:36:21 +0200 Subject: [PATCH 1/3] Beam messages integration (#10) * CI/CD pipes improvement, added contributing file * Move types declaration dependencies in production from dev dependencies * Update auto generated docs * 0.3.4 * Add support for ulum base denom * 0.3.5 * Added beam proto generation * Use builtin codecs * Added beam messages, fixed duplicate interface usage * Added editor config (webstorm) * Fixed typo * Removed not relevant test * Fixed codec compilation * Added basic beam test Co-authored-by: Segfault Co-authored-by: Fabrice Bascoulergue Co-authored-by: Enguerrand Pinot --- .editorconfig | 17 + package.json | 3 +- scripts/define-proto.sh | 14 +- scripts/get-proto.sh | 12 + src/codec/chain/beam/beam.ts | 2265 +++++++++++++++++ src/messages/bank/MsgMultiSend.ts | 15 +- src/messages/bank/MsgSend.ts | 8 +- src/messages/beam/MsgCancelBeam.ts | 14 + src/messages/beam/MsgClaimBeam.ts | 15 + src/messages/beam/MsgOpenBeam.ts | 19 + src/messages/beam/MsgUpdateBeam.ts | 18 + src/messages/beam/index.ts | 4 + .../distribution/MsgFundCommunityPool.ts | 10 +- .../distribution/MsgSetWithdrawAddress.ts | 10 +- .../MsgWithdrawDelegatorReward.ts | 10 +- .../MsgWithdrawValidatorCommission.ts | 9 +- src/messages/faucet/MsgMintAndSend.ts | 21 - src/messages/faucet/index.ts | 1 - src/messages/index.ts | 2 +- src/messages/staking/MsgBeginRedelegate.ts | 12 +- src/messages/staking/MsgCreateValidator.ts | 12 +- src/messages/staking/MsgDelegate.ts | 11 +- src/messages/staking/MsgEditValidator.ts | 14 +- src/messages/staking/MsgUndelegate.ts | 11 +- src/registry/index.ts | 6 + tests/client.test.ts | 75 +- tests/faucet.test.ts | 36 - yarn.lock | 19 +- 28 files changed, 2469 insertions(+), 194 deletions(-) create mode 100644 .editorconfig create mode 100644 src/codec/chain/beam/beam.ts create mode 100644 src/messages/beam/MsgCancelBeam.ts create mode 100644 src/messages/beam/MsgClaimBeam.ts create mode 100644 src/messages/beam/MsgOpenBeam.ts create mode 100644 src/messages/beam/MsgUpdateBeam.ts create mode 100644 src/messages/beam/index.ts delete mode 100644 src/messages/faucet/MsgMintAndSend.ts delete mode 100644 src/messages/faucet/index.ts delete mode 100644 tests/faucet.test.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..27133f3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = 240 + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/package.json b/package.json index 65c65b2..4ae1d36 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "@babel/preset-typescript": "^7.8.3", "@types/jest": "^26.0.20", "@types/ledgerhq__hw-transport-node-hid": "^4.22.2", + "axios": "^0.21.1", "cross-env": "^7.0.3", "eslint": "^7.19.0", "gts": "^3.1.0", @@ -74,7 +75,7 @@ "prettier": "^2.2.1", "rimraf": "^3.0.2", "ts-jest": "^26.5.0", - "ts-proto": "^1.67.0", + "ts-proto": "^1.79.7", "typedoc": "^0.20.25", "typedoc-plugin-markdown": "^3.5.0", "typescript": "^4.1.3" diff --git a/scripts/define-proto.sh b/scripts/define-proto.sh index e27052a..b8bfe35 100644 --- a/scripts/define-proto.sh +++ b/scripts/define-proto.sh @@ -5,6 +5,10 @@ command -v shellcheck >/dev/null && shellcheck "$0" ROOT_PROTO_DIR="./proto/cosmos/cosmos-sdk" COSMOS_PROTO_DIR="$ROOT_PROTO_DIR/proto" THIRD_PARTY_PROTO_DIR="$ROOT_PROTO_DIR/third_party/proto" + +ROOT_LUM_PROTO_DIR="./proto/lum-network/chain" +LUM_PROTO_DIR="$ROOT_LUM_PROTO_DIR/proto" + OUT_DIR="./src/codec/" mkdir -p "$OUT_DIR" @@ -14,6 +18,7 @@ protoc \ --ts_proto_out="$OUT_DIR" \ --proto_path="$COSMOS_PROTO_DIR" \ --proto_path="$THIRD_PARTY_PROTO_DIR" \ + --proto_path="$LUM_PROTO_DIR" \ --ts_proto_opt="esModuleInterop=true,forceLong=long,useOptionals=true" \ "$COSMOS_PROTO_DIR/cosmos/auth/v1beta1/auth.proto" \ "$COSMOS_PROTO_DIR/cosmos/auth/v1beta1/query.proto" \ @@ -33,12 +38,6 @@ protoc \ "$COSMOS_PROTO_DIR/cosmos/staking/v1beta1/tx.proto" \ "$COSMOS_PROTO_DIR/cosmos/tx/signing/v1beta1/signing.proto" \ "$COSMOS_PROTO_DIR/cosmos/tx/v1beta1/tx.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/channel/v1/channel.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/channel/v1/query.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/client/v1/client.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/commitment/v1/commitment.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/connection/v1/connection.proto" \ - "$COSMOS_PROTO_DIR/ibc/core/connection/v1/query.proto" \ "$THIRD_PARTY_PROTO_DIR/confio/proofs.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/abci/types.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/crypto/keys.proto" \ @@ -47,7 +46,8 @@ protoc \ "$THIRD_PARTY_PROTO_DIR/tendermint/types/params.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/types/types.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/types/validator.proto" \ - "$THIRD_PARTY_PROTO_DIR/tendermint/version/types.proto" + "$THIRD_PARTY_PROTO_DIR/tendermint/version/types.proto" \ + "$LUM_PROTO_DIR/chain/beam/beam.proto" # Remove unnecessary codec files rm -rf \ diff --git a/scripts/get-proto.sh b/scripts/get-proto.sh index 6468884..228f027 100644 --- a/scripts/get-proto.sh +++ b/scripts/get-proto.sh @@ -6,14 +6,26 @@ PROTO_DIR="./proto" COSMOS_DIR="$PROTO_DIR/cosmos" COSMOS_SDK_DIR="$COSMOS_DIR/cosmos-sdk" ZIP_FILE="$COSMOS_DIR/tmp.zip" + +LUM_NETWORK_DIR="$PROTO_DIR/lum-network" +LUM_NETWORK_SDK_DIR="$LUM_NETWORK_DIR/chain" + REF=${REF:-"master"} SUFFIX=${REF} [[ $SUFFIX =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-.+)?$ ]] && SUFFIX=${SUFFIX#v} +# Create the cosmos dir mkdir -p "$COSMOS_DIR" +# Download the cosmos archive wget -qO "$ZIP_FILE" "https://github.com/cosmos/cosmos-sdk/archive/$REF.zip" unzip "$ZIP_FILE" "*.proto" -d "$COSMOS_DIR" mv "$COSMOS_SDK_DIR-$SUFFIX" "$COSMOS_SDK_DIR" rm "$ZIP_FILE" + +# Create the lum network dir +mkdir -p "$LUM_NETWORK_SDK_DIR/proto/chain/beam" + +# Download the beam archive +wget -qO "$LUM_NETWORK_SDK_DIR/proto/chain/beam/beam.proto" "https://raw.githubusercontent.com/lum-network/chain/master/proto/beam/beam.proto?token=ABH2VUAPWO3DRGHMRGXWZWDASVAMY" diff --git a/src/codec/chain/beam/beam.ts b/src/codec/chain/beam/beam.ts new file mode 100644 index 0000000..85c8630 --- /dev/null +++ b/src/codec/chain/beam/beam.ts @@ -0,0 +1,2265 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'lum.network.beam'; + +export interface BeamReward { + rewards: BeamReward_BeamRewardDetails[]; +} + +export interface BeamReward_BeamRewardDetails { + name: string; + amount: Long; + maxAmount: Long; + currency: string; + status: string; +} + +export interface BeamReview { + reviewer?: BeamReview_BeamReviewReviewer; + merchantReview?: BeamReview_BeamReviewMerchantReview; + productsReviews: BeamReview_BeamReviewProductReview[]; +} + +export interface BeamReview_BeamReviewReviewer { + reviewerId: string; + name: string; + isAnonymous: boolean; +} + +export interface BeamReview_BeamReviewMerchantReview { + reviewId: string; + merchantUrl: string; + ratingUrl: string; + reviewUrl: string; + timestamp: string; + ratings: { [key: string]: Long }; + title: string; + content: { [key: string]: string }; +} + +export interface BeamReview_BeamReviewMerchantReview_RatingsEntry { + key: string; + value: Long; +} + +export interface BeamReview_BeamReviewMerchantReview_ContentEntry { + key: string; + value: string; +} + +export interface BeamReview_BeamReviewProductReview { + reviewId: string; + ratingUrl: string; + reviewUrl: string; + collectionMethod: string; + timestamp: string; + ratings: { [key: string]: Long }; + title: string; + content: { [key: string]: string }; + medias: BeamReview_BeamReviewProductReview_Media[]; + products: BeamReview_BeamReviewProductReview_Product[]; +} + +export interface BeamReview_BeamReviewProductReview_Media { + mimetype: string; + url: string; + thumbnailUrl: string; +} + +export interface BeamReview_BeamReviewProductReview_Product { + name: string; + url: string; + brands: string[]; + ids?: BeamReview_BeamReviewProductReview_Product_ProductIds; +} + +export interface BeamReview_BeamReviewProductReview_Product_ProductIds { + gtins: string[]; + mpns: string[]; + skus: string[]; + asins: string[]; +} + +export interface BeamReview_BeamReviewProductReview_RatingsEntry { + key: string; + value: Long; +} + +export interface BeamReview_BeamReviewProductReview_ContentEntry { + key: string; + value: string; +} + +export interface Beam { + creator: string; + id: string; + amount: Long; + status: string; + secret: string; + schema: string; + reward?: BeamReward; + review?: BeamReview; +} + +export interface MsgOpenBeam { + id: string; + creator: string; + amount: Long; + secret: string; + reward?: BeamReward; + review?: BeamReview; +} + +export interface MsgUpdateBeam { + updater: string; + id: string; + amount: Long; + reward?: BeamReward; + review?: BeamReview; +} + +export interface MsgCancelBeam { + updater: string; + id: string; +} + +export interface MsgCloseBeam { + updater: string; + id: string; +} + +export interface MsgClaimBeam { + claimer: string; + id: string; + secret: string; +} + +const baseBeamReward: object = {}; + +export const BeamReward = { + encode(message: BeamReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.rewards) { + BeamReward_BeamRewardDetails.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReward } as BeamReward; + message.rewards = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.rewards.push(BeamReward_BeamRewardDetails.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReward { + const message = { ...baseBeamReward } as BeamReward; + message.rewards = []; + if (object.rewards !== undefined && object.rewards !== null) { + for (const e of object.rewards) { + message.rewards.push(BeamReward_BeamRewardDetails.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: BeamReward): unknown { + const obj: any = {}; + if (message.rewards) { + obj.rewards = message.rewards.map((e) => (e ? BeamReward_BeamRewardDetails.toJSON(e) : undefined)); + } else { + obj.rewards = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): BeamReward { + const message = { ...baseBeamReward } as BeamReward; + message.rewards = []; + if (object.rewards !== undefined && object.rewards !== null) { + for (const e of object.rewards) { + message.rewards.push(BeamReward_BeamRewardDetails.fromPartial(e)); + } + } + return message; + }, +}; + +const baseBeamReward_BeamRewardDetails: object = { name: '', amount: Long.ZERO, maxAmount: Long.ZERO, currency: '', status: '' }; + +export const BeamReward_BeamRewardDetails = { + encode(message: BeamReward_BeamRewardDetails, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== '') { + writer.uint32(10).string(message.name); + } + if (!message.amount.isZero()) { + writer.uint32(16).int64(message.amount); + } + if (!message.maxAmount.isZero()) { + writer.uint32(24).int64(message.maxAmount); + } + if (message.currency !== '') { + writer.uint32(34).string(message.currency); + } + if (message.status !== '') { + writer.uint32(42).string(message.status); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward_BeamRewardDetails { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.amount = reader.int64() as Long; + break; + case 3: + message.maxAmount = reader.int64() as Long; + break; + case 4: + message.currency = reader.string(); + break; + case 5: + message.status = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReward_BeamRewardDetails { + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + if (object.name !== undefined && object.name !== null) { + message.name = String(object.name); + } else { + message.name = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = Long.fromString(object.maxAmount); + } else { + message.maxAmount = Long.ZERO; + } + if (object.currency !== undefined && object.currency !== null) { + message.currency = String(object.currency); + } else { + message.currency = ''; + } + if (object.status !== undefined && object.status !== null) { + message.status = String(object.status); + } else { + message.status = ''; + } + return message; + }, + + toJSON(message: BeamReward_BeamRewardDetails): unknown { + const obj: any = {}; + message.name !== undefined && (obj.name = message.name); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.maxAmount !== undefined && (obj.maxAmount = (message.maxAmount || Long.ZERO).toString()); + message.currency !== undefined && (obj.currency = message.currency); + message.status !== undefined && (obj.status = message.status); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReward_BeamRewardDetails { + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + if (object.name !== undefined && object.name !== null) { + message.name = object.name; + } else { + message.name = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = object.maxAmount as Long; + } else { + message.maxAmount = Long.ZERO; + } + if (object.currency !== undefined && object.currency !== null) { + message.currency = object.currency; + } else { + message.currency = ''; + } + if (object.status !== undefined && object.status !== null) { + message.status = object.status; + } else { + message.status = ''; + } + return message; + }, +}; + +const baseBeamReview: object = {}; + +export const BeamReview = { + encode(message: BeamReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewer !== undefined) { + BeamReview_BeamReviewReviewer.encode(message.reviewer, writer.uint32(10).fork()).ldelim(); + } + if (message.merchantReview !== undefined) { + BeamReview_BeamReviewMerchantReview.encode(message.merchantReview, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.productsReviews) { + BeamReview_BeamReviewProductReview.encode(v!, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview } as BeamReview; + message.productsReviews = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewer = BeamReview_BeamReviewReviewer.decode(reader, reader.uint32()); + break; + case 2: + message.merchantReview = BeamReview_BeamReviewMerchantReview.decode(reader, reader.uint32()); + break; + case 3: + message.productsReviews.push(BeamReview_BeamReviewProductReview.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview { + const message = { ...baseBeamReview } as BeamReview; + message.productsReviews = []; + if (object.reviewer !== undefined && object.reviewer !== null) { + message.reviewer = BeamReview_BeamReviewReviewer.fromJSON(object.reviewer); + } else { + message.reviewer = undefined; + } + if (object.merchantReview !== undefined && object.merchantReview !== null) { + message.merchantReview = BeamReview_BeamReviewMerchantReview.fromJSON(object.merchantReview); + } else { + message.merchantReview = undefined; + } + if (object.productsReviews !== undefined && object.productsReviews !== null) { + for (const e of object.productsReviews) { + message.productsReviews.push(BeamReview_BeamReviewProductReview.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: BeamReview): unknown { + const obj: any = {}; + message.reviewer !== undefined && (obj.reviewer = message.reviewer ? BeamReview_BeamReviewReviewer.toJSON(message.reviewer) : undefined); + message.merchantReview !== undefined && (obj.merchantReview = message.merchantReview ? BeamReview_BeamReviewMerchantReview.toJSON(message.merchantReview) : undefined); + if (message.productsReviews) { + obj.productsReviews = message.productsReviews.map((e) => (e ? BeamReview_BeamReviewProductReview.toJSON(e) : undefined)); + } else { + obj.productsReviews = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview { + const message = { ...baseBeamReview } as BeamReview; + message.productsReviews = []; + if (object.reviewer !== undefined && object.reviewer !== null) { + message.reviewer = BeamReview_BeamReviewReviewer.fromPartial(object.reviewer); + } else { + message.reviewer = undefined; + } + if (object.merchantReview !== undefined && object.merchantReview !== null) { + message.merchantReview = BeamReview_BeamReviewMerchantReview.fromPartial(object.merchantReview); + } else { + message.merchantReview = undefined; + } + if (object.productsReviews !== undefined && object.productsReviews !== null) { + for (const e of object.productsReviews) { + message.productsReviews.push(BeamReview_BeamReviewProductReview.fromPartial(e)); + } + } + return message; + }, +}; + +const baseBeamReview_BeamReviewReviewer: object = { reviewerId: '', name: '', isAnonymous: false }; + +export const BeamReview_BeamReviewReviewer = { + encode(message: BeamReview_BeamReviewReviewer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewerId !== '') { + writer.uint32(10).string(message.reviewerId); + } + if (message.name !== '') { + writer.uint32(18).string(message.name); + } + if (message.isAnonymous === true) { + writer.uint32(24).bool(message.isAnonymous); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewReviewer { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewerId = reader.string(); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.isAnonymous = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewReviewer { + const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; + if (object.reviewerId !== undefined && object.reviewerId !== null) { + message.reviewerId = String(object.reviewerId); + } else { + message.reviewerId = ''; + } + if (object.name !== undefined && object.name !== null) { + message.name = String(object.name); + } else { + message.name = ''; + } + if (object.isAnonymous !== undefined && object.isAnonymous !== null) { + message.isAnonymous = Boolean(object.isAnonymous); + } else { + message.isAnonymous = false; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewReviewer): unknown { + const obj: any = {}; + message.reviewerId !== undefined && (obj.reviewerId = message.reviewerId); + message.name !== undefined && (obj.name = message.name); + message.isAnonymous !== undefined && (obj.isAnonymous = message.isAnonymous); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewReviewer { + const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; + if (object.reviewerId !== undefined && object.reviewerId !== null) { + message.reviewerId = object.reviewerId; + } else { + message.reviewerId = ''; + } + if (object.name !== undefined && object.name !== null) { + message.name = object.name; + } else { + message.name = ''; + } + if (object.isAnonymous !== undefined && object.isAnonymous !== null) { + message.isAnonymous = object.isAnonymous; + } else { + message.isAnonymous = false; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewMerchantReview: object = { reviewId: '', merchantUrl: '', ratingUrl: '', reviewUrl: '', timestamp: '', title: '' }; + +export const BeamReview_BeamReviewMerchantReview = { + encode(message: BeamReview_BeamReviewMerchantReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewId !== '') { + writer.uint32(10).string(message.reviewId); + } + if (message.merchantUrl !== '') { + writer.uint32(18).string(message.merchantUrl); + } + if (message.ratingUrl !== '') { + writer.uint32(26).string(message.ratingUrl); + } + if (message.reviewUrl !== '') { + writer.uint32(34).string(message.reviewUrl); + } + if (message.timestamp !== '') { + writer.uint32(42).string(message.timestamp); + } + Object.entries(message.ratings).forEach(([key, value]) => { + BeamReview_BeamReviewMerchantReview_RatingsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).ldelim(); + }); + if (message.title !== '') { + writer.uint32(58).string(message.title); + } + Object.entries(message.content).forEach(([key, value]) => { + BeamReview_BeamReviewMerchantReview_ContentEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).ldelim(); + }); + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; + message.ratings = {}; + message.content = {}; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewId = reader.string(); + break; + case 2: + message.merchantUrl = reader.string(); + break; + case 3: + message.ratingUrl = reader.string(); + break; + case 4: + message.reviewUrl = reader.string(); + break; + case 5: + message.timestamp = reader.string(); + break; + case 6: + const entry6 = BeamReview_BeamReviewMerchantReview_RatingsEntry.decode(reader, reader.uint32()); + if (entry6.value !== undefined) { + message.ratings[entry6.key] = entry6.value; + } + break; + case 7: + message.title = reader.string(); + break; + case 8: + const entry8 = BeamReview_BeamReviewMerchantReview_ContentEntry.decode(reader, reader.uint32()); + if (entry8.value !== undefined) { + message.content[entry8.key] = entry8.value; + } + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewMerchantReview { + const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; + message.ratings = {}; + message.content = {}; + if (object.reviewId !== undefined && object.reviewId !== null) { + message.reviewId = String(object.reviewId); + } else { + message.reviewId = ''; + } + if (object.merchantUrl !== undefined && object.merchantUrl !== null) { + message.merchantUrl = String(object.merchantUrl); + } else { + message.merchantUrl = ''; + } + if (object.ratingUrl !== undefined && object.ratingUrl !== null) { + message.ratingUrl = String(object.ratingUrl); + } else { + message.ratingUrl = ''; + } + if (object.reviewUrl !== undefined && object.reviewUrl !== null) { + message.reviewUrl = String(object.reviewUrl); + } else { + message.reviewUrl = ''; + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = String(object.timestamp); + } else { + message.timestamp = ''; + } + if (object.ratings !== undefined && object.ratings !== null) { + Object.entries(object.ratings).forEach(([key, value]) => { + message.ratings[key] = new Long(value as any); + }); + } + if (object.title !== undefined && object.title !== null) { + message.title = String(object.title); + } else { + message.title = ''; + } + if (object.content !== undefined && object.content !== null) { + Object.entries(object.content).forEach(([key, value]) => { + message.content[key] = String(value); + }); + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewMerchantReview): unknown { + const obj: any = {}; + message.reviewId !== undefined && (obj.reviewId = message.reviewId); + message.merchantUrl !== undefined && (obj.merchantUrl = message.merchantUrl); + message.ratingUrl !== undefined && (obj.ratingUrl = message.ratingUrl); + message.reviewUrl !== undefined && (obj.reviewUrl = message.reviewUrl); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); + obj.ratings = {}; + if (message.ratings) { + Object.entries(message.ratings).forEach(([k, v]) => { + obj.ratings[k] = v; + }); + } + message.title !== undefined && (obj.title = message.title); + obj.content = {}; + if (message.content) { + Object.entries(message.content).forEach(([k, v]) => { + obj.content[k] = v; + }); + } + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview { + const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; + message.ratings = {}; + message.content = {}; + if (object.reviewId !== undefined && object.reviewId !== null) { + message.reviewId = object.reviewId; + } else { + message.reviewId = ''; + } + if (object.merchantUrl !== undefined && object.merchantUrl !== null) { + message.merchantUrl = object.merchantUrl; + } else { + message.merchantUrl = ''; + } + if (object.ratingUrl !== undefined && object.ratingUrl !== null) { + message.ratingUrl = object.ratingUrl; + } else { + message.ratingUrl = ''; + } + if (object.reviewUrl !== undefined && object.reviewUrl !== null) { + message.reviewUrl = object.reviewUrl; + } else { + message.reviewUrl = ''; + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = object.timestamp; + } else { + message.timestamp = ''; + } + if (object.ratings !== undefined && object.ratings !== null) { + Object.entries(object.ratings).forEach(([key, value]) => { + if (value !== undefined) { + message.ratings[key] = new Long(value as any); + } + }); + } + if (object.title !== undefined && object.title !== null) { + message.title = object.title; + } else { + message.title = ''; + } + if (object.content !== undefined && object.content !== null) { + Object.entries(object.content).forEach(([key, value]) => { + if (value !== undefined) { + message.content[key] = String(value); + } + }); + } + return message; + }, +}; + +const baseBeamReview_BeamReviewMerchantReview_RatingsEntry: object = { key: '', value: Long.ZERO }; + +export const BeamReview_BeamReviewMerchantReview_RatingsEntry = { + encode(message: BeamReview_BeamReviewMerchantReview_RatingsEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== '') { + writer.uint32(10).string(message.key); + } + if (!message.value.isZero()) { + writer.uint32(16).int64(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview_RatingsEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.int64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewMerchantReview_RatingsEntry { + const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; + if (object.key !== undefined && object.key !== null) { + message.key = String(object.key); + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = Long.fromString(object.value); + } else { + message.value = Long.ZERO; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewMerchantReview_RatingsEntry): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview_RatingsEntry { + const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; + if (object.key !== undefined && object.key !== null) { + message.key = object.key; + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = object.value as Long; + } else { + message.value = Long.ZERO; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewMerchantReview_ContentEntry: object = { key: '', value: '' }; + +export const BeamReview_BeamReviewMerchantReview_ContentEntry = { + encode(message: BeamReview_BeamReviewMerchantReview_ContentEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== '') { + writer.uint32(10).string(message.key); + } + if (message.value !== '') { + writer.uint32(18).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview_ContentEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewMerchantReview_ContentEntry { + const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; + if (object.key !== undefined && object.key !== null) { + message.key = String(object.key); + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = String(object.value); + } else { + message.value = ''; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewMerchantReview_ContentEntry): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview_ContentEntry { + const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; + if (object.key !== undefined && object.key !== null) { + message.key = object.key; + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = object.value; + } else { + message.value = ''; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview: object = { reviewId: '', ratingUrl: '', reviewUrl: '', collectionMethod: '', timestamp: '', title: '' }; + +export const BeamReview_BeamReviewProductReview = { + encode(message: BeamReview_BeamReviewProductReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewId !== '') { + writer.uint32(10).string(message.reviewId); + } + if (message.ratingUrl !== '') { + writer.uint32(18).string(message.ratingUrl); + } + if (message.reviewUrl !== '') { + writer.uint32(26).string(message.reviewUrl); + } + if (message.collectionMethod !== '') { + writer.uint32(34).string(message.collectionMethod); + } + if (message.timestamp !== '') { + writer.uint32(42).string(message.timestamp); + } + Object.entries(message.ratings).forEach(([key, value]) => { + BeamReview_BeamReviewProductReview_RatingsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).ldelim(); + }); + if (message.title !== '') { + writer.uint32(58).string(message.title); + } + Object.entries(message.content).forEach(([key, value]) => { + BeamReview_BeamReviewProductReview_ContentEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).ldelim(); + }); + for (const v of message.medias) { + BeamReview_BeamReviewProductReview_Media.encode(v!, writer.uint32(74).fork()).ldelim(); + } + for (const v of message.products) { + BeamReview_BeamReviewProductReview_Product.encode(v!, writer.uint32(82).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; + message.ratings = {}; + message.content = {}; + message.medias = []; + message.products = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewId = reader.string(); + break; + case 2: + message.ratingUrl = reader.string(); + break; + case 3: + message.reviewUrl = reader.string(); + break; + case 4: + message.collectionMethod = reader.string(); + break; + case 5: + message.timestamp = reader.string(); + break; + case 6: + const entry6 = BeamReview_BeamReviewProductReview_RatingsEntry.decode(reader, reader.uint32()); + if (entry6.value !== undefined) { + message.ratings[entry6.key] = entry6.value; + } + break; + case 7: + message.title = reader.string(); + break; + case 8: + const entry8 = BeamReview_BeamReviewProductReview_ContentEntry.decode(reader, reader.uint32()); + if (entry8.value !== undefined) { + message.content[entry8.key] = entry8.value; + } + break; + case 9: + message.medias.push(BeamReview_BeamReviewProductReview_Media.decode(reader, reader.uint32())); + break; + case 10: + message.products.push(BeamReview_BeamReviewProductReview_Product.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview { + const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; + message.ratings = {}; + message.content = {}; + message.medias = []; + message.products = []; + if (object.reviewId !== undefined && object.reviewId !== null) { + message.reviewId = String(object.reviewId); + } else { + message.reviewId = ''; + } + if (object.ratingUrl !== undefined && object.ratingUrl !== null) { + message.ratingUrl = String(object.ratingUrl); + } else { + message.ratingUrl = ''; + } + if (object.reviewUrl !== undefined && object.reviewUrl !== null) { + message.reviewUrl = String(object.reviewUrl); + } else { + message.reviewUrl = ''; + } + if (object.collectionMethod !== undefined && object.collectionMethod !== null) { + message.collectionMethod = String(object.collectionMethod); + } else { + message.collectionMethod = ''; + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = String(object.timestamp); + } else { + message.timestamp = ''; + } + if (object.ratings !== undefined && object.ratings !== null) { + Object.entries(object.ratings).forEach(([key, value]) => { + message.ratings[key] = new Long(value as any); + }); + } + if (object.title !== undefined && object.title !== null) { + message.title = String(object.title); + } else { + message.title = ''; + } + if (object.content !== undefined && object.content !== null) { + Object.entries(object.content).forEach(([key, value]) => { + message.content[key] = String(value); + }); + } + if (object.medias !== undefined && object.medias !== null) { + for (const e of object.medias) { + message.medias.push(BeamReview_BeamReviewProductReview_Media.fromJSON(e)); + } + } + if (object.products !== undefined && object.products !== null) { + for (const e of object.products) { + message.products.push(BeamReview_BeamReviewProductReview_Product.fromJSON(e)); + } + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview): unknown { + const obj: any = {}; + message.reviewId !== undefined && (obj.reviewId = message.reviewId); + message.ratingUrl !== undefined && (obj.ratingUrl = message.ratingUrl); + message.reviewUrl !== undefined && (obj.reviewUrl = message.reviewUrl); + message.collectionMethod !== undefined && (obj.collectionMethod = message.collectionMethod); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); + obj.ratings = {}; + if (message.ratings) { + Object.entries(message.ratings).forEach(([k, v]) => { + obj.ratings[k] = v; + }); + } + message.title !== undefined && (obj.title = message.title); + obj.content = {}; + if (message.content) { + Object.entries(message.content).forEach(([k, v]) => { + obj.content[k] = v; + }); + } + if (message.medias) { + obj.medias = message.medias.map((e) => (e ? BeamReview_BeamReviewProductReview_Media.toJSON(e) : undefined)); + } else { + obj.medias = []; + } + if (message.products) { + obj.products = message.products.map((e) => (e ? BeamReview_BeamReviewProductReview_Product.toJSON(e) : undefined)); + } else { + obj.products = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview { + const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; + message.ratings = {}; + message.content = {}; + message.medias = []; + message.products = []; + if (object.reviewId !== undefined && object.reviewId !== null) { + message.reviewId = object.reviewId; + } else { + message.reviewId = ''; + } + if (object.ratingUrl !== undefined && object.ratingUrl !== null) { + message.ratingUrl = object.ratingUrl; + } else { + message.ratingUrl = ''; + } + if (object.reviewUrl !== undefined && object.reviewUrl !== null) { + message.reviewUrl = object.reviewUrl; + } else { + message.reviewUrl = ''; + } + if (object.collectionMethod !== undefined && object.collectionMethod !== null) { + message.collectionMethod = object.collectionMethod; + } else { + message.collectionMethod = ''; + } + if (object.timestamp !== undefined && object.timestamp !== null) { + message.timestamp = object.timestamp; + } else { + message.timestamp = ''; + } + if (object.ratings !== undefined && object.ratings !== null) { + Object.entries(object.ratings).forEach(([key, value]) => { + if (value !== undefined) { + message.ratings[key] = new Long(value as any); + } + }); + } + if (object.title !== undefined && object.title !== null) { + message.title = object.title; + } else { + message.title = ''; + } + if (object.content !== undefined && object.content !== null) { + Object.entries(object.content).forEach(([key, value]) => { + if (value !== undefined) { + message.content[key] = String(value); + } + }); + } + if (object.medias !== undefined && object.medias !== null) { + for (const e of object.medias) { + message.medias.push(BeamReview_BeamReviewProductReview_Media.fromPartial(e)); + } + } + if (object.products !== undefined && object.products !== null) { + for (const e of object.products) { + message.products.push(BeamReview_BeamReviewProductReview_Product.fromPartial(e)); + } + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview_Media: object = { mimetype: '', url: '', thumbnailUrl: '' }; + +export const BeamReview_BeamReviewProductReview_Media = { + encode(message: BeamReview_BeamReviewProductReview_Media, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.mimetype !== '') { + writer.uint32(10).string(message.mimetype); + } + if (message.url !== '') { + writer.uint32(18).string(message.url); + } + if (message.thumbnailUrl !== '') { + writer.uint32(26).string(message.thumbnailUrl); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Media { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.mimetype = reader.string(); + break; + case 2: + message.url = reader.string(); + break; + case 3: + message.thumbnailUrl = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview_Media { + const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; + if (object.mimetype !== undefined && object.mimetype !== null) { + message.mimetype = String(object.mimetype); + } else { + message.mimetype = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = String(object.url); + } else { + message.url = ''; + } + if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { + message.thumbnailUrl = String(object.thumbnailUrl); + } else { + message.thumbnailUrl = ''; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview_Media): unknown { + const obj: any = {}; + message.mimetype !== undefined && (obj.mimetype = message.mimetype); + message.url !== undefined && (obj.url = message.url); + message.thumbnailUrl !== undefined && (obj.thumbnailUrl = message.thumbnailUrl); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Media { + const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; + if (object.mimetype !== undefined && object.mimetype !== null) { + message.mimetype = object.mimetype; + } else { + message.mimetype = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = object.url; + } else { + message.url = ''; + } + if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { + message.thumbnailUrl = object.thumbnailUrl; + } else { + message.thumbnailUrl = ''; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview_Product: object = { name: '', url: '', brands: '' }; + +export const BeamReview_BeamReviewProductReview_Product = { + encode(message: BeamReview_BeamReviewProductReview_Product, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== '') { + writer.uint32(10).string(message.name); + } + if (message.url !== '') { + writer.uint32(18).string(message.url); + } + for (const v of message.brands) { + writer.uint32(26).string(v!); + } + if (message.ids !== undefined) { + BeamReview_BeamReviewProductReview_Product_ProductIds.encode(message.ids, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Product { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; + message.brands = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.url = reader.string(); + break; + case 3: + message.brands.push(reader.string()); + break; + case 4: + message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview_Product { + const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; + message.brands = []; + if (object.name !== undefined && object.name !== null) { + message.name = String(object.name); + } else { + message.name = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = String(object.url); + } else { + message.url = ''; + } + if (object.brands !== undefined && object.brands !== null) { + for (const e of object.brands) { + message.brands.push(String(e)); + } + } + if (object.ids !== undefined && object.ids !== null) { + message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.fromJSON(object.ids); + } else { + message.ids = undefined; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview_Product): unknown { + const obj: any = {}; + message.name !== undefined && (obj.name = message.name); + message.url !== undefined && (obj.url = message.url); + if (message.brands) { + obj.brands = message.brands.map((e) => e); + } else { + obj.brands = []; + } + message.ids !== undefined && (obj.ids = message.ids ? BeamReview_BeamReviewProductReview_Product_ProductIds.toJSON(message.ids) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Product { + const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; + message.brands = []; + if (object.name !== undefined && object.name !== null) { + message.name = object.name; + } else { + message.name = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = object.url; + } else { + message.url = ''; + } + if (object.brands !== undefined && object.brands !== null) { + for (const e of object.brands) { + message.brands.push(e); + } + } + if (object.ids !== undefined && object.ids !== null) { + message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.fromPartial(object.ids); + } else { + message.ids = undefined; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview_Product_ProductIds: object = { gtins: '', mpns: '', skus: '', asins: '' }; + +export const BeamReview_BeamReviewProductReview_Product_ProductIds = { + encode(message: BeamReview_BeamReviewProductReview_Product_ProductIds, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.gtins) { + writer.uint32(10).string(v!); + } + for (const v of message.mpns) { + writer.uint32(18).string(v!); + } + for (const v of message.skus) { + writer.uint32(26).string(v!); + } + for (const v of message.asins) { + writer.uint32(34).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Product_ProductIds { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + message.gtins = []; + message.mpns = []; + message.skus = []; + message.asins = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.gtins.push(reader.string()); + break; + case 2: + message.mpns.push(reader.string()); + break; + case 3: + message.skus.push(reader.string()); + break; + case 4: + message.asins.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview_Product_ProductIds { + const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + message.gtins = []; + message.mpns = []; + message.skus = []; + message.asins = []; + if (object.gtins !== undefined && object.gtins !== null) { + for (const e of object.gtins) { + message.gtins.push(String(e)); + } + } + if (object.mpns !== undefined && object.mpns !== null) { + for (const e of object.mpns) { + message.mpns.push(String(e)); + } + } + if (object.skus !== undefined && object.skus !== null) { + for (const e of object.skus) { + message.skus.push(String(e)); + } + } + if (object.asins !== undefined && object.asins !== null) { + for (const e of object.asins) { + message.asins.push(String(e)); + } + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview_Product_ProductIds): unknown { + const obj: any = {}; + if (message.gtins) { + obj.gtins = message.gtins.map((e) => e); + } else { + obj.gtins = []; + } + if (message.mpns) { + obj.mpns = message.mpns.map((e) => e); + } else { + obj.mpns = []; + } + if (message.skus) { + obj.skus = message.skus.map((e) => e); + } else { + obj.skus = []; + } + if (message.asins) { + obj.asins = message.asins.map((e) => e); + } else { + obj.asins = []; + } + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Product_ProductIds { + const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + message.gtins = []; + message.mpns = []; + message.skus = []; + message.asins = []; + if (object.gtins !== undefined && object.gtins !== null) { + for (const e of object.gtins) { + message.gtins.push(e); + } + } + if (object.mpns !== undefined && object.mpns !== null) { + for (const e of object.mpns) { + message.mpns.push(e); + } + } + if (object.skus !== undefined && object.skus !== null) { + for (const e of object.skus) { + message.skus.push(e); + } + } + if (object.asins !== undefined && object.asins !== null) { + for (const e of object.asins) { + message.asins.push(e); + } + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview_RatingsEntry: object = { key: '', value: Long.ZERO }; + +export const BeamReview_BeamReviewProductReview_RatingsEntry = { + encode(message: BeamReview_BeamReviewProductReview_RatingsEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== '') { + writer.uint32(10).string(message.key); + } + if (!message.value.isZero()) { + writer.uint32(16).int64(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_RatingsEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.int64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview_RatingsEntry { + const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; + if (object.key !== undefined && object.key !== null) { + message.key = String(object.key); + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = Long.fromString(object.value); + } else { + message.value = Long.ZERO; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview_RatingsEntry): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_RatingsEntry { + const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; + if (object.key !== undefined && object.key !== null) { + message.key = object.key; + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = object.value as Long; + } else { + message.value = Long.ZERO; + } + return message; + }, +}; + +const baseBeamReview_BeamReviewProductReview_ContentEntry: object = { key: '', value: '' }; + +export const BeamReview_BeamReviewProductReview_ContentEntry = { + encode(message: BeamReview_BeamReviewProductReview_ContentEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== '') { + writer.uint32(10).string(message.key); + } + if (message.value !== '') { + writer.uint32(18).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_ContentEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.string(); + break; + case 2: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReview_BeamReviewProductReview_ContentEntry { + const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; + if (object.key !== undefined && object.key !== null) { + message.key = String(object.key); + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = String(object.value); + } else { + message.value = ''; + } + return message; + }, + + toJSON(message: BeamReview_BeamReviewProductReview_ContentEntry): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = message.key); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_ContentEntry { + const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; + if (object.key !== undefined && object.key !== null) { + message.key = object.key; + } else { + message.key = ''; + } + if (object.value !== undefined && object.value !== null) { + message.value = object.value; + } else { + message.value = ''; + } + return message; + }, +}; + +const baseBeam: object = { creator: '', id: '', amount: Long.ZERO, status: '', secret: '', schema: '' }; + +export const Beam = { + encode(message: Beam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.creator !== '') { + writer.uint32(10).string(message.creator); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + if (!message.amount.isZero()) { + writer.uint32(24).int64(message.amount); + } + if (message.status !== '') { + writer.uint32(34).string(message.status); + } + if (message.secret !== '') { + writer.uint32(42).string(message.secret); + } + if (message.schema !== '') { + writer.uint32(50).string(message.schema); + } + if (message.reward !== undefined) { + BeamReward.encode(message.reward, writer.uint32(58).fork()).ldelim(); + } + if (message.review !== undefined) { + BeamReview.encode(message.review, writer.uint32(66).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Beam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeam } as Beam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.creator = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + case 3: + message.amount = reader.int64() as Long; + break; + case 4: + message.status = reader.string(); + break; + case 5: + message.secret = reader.string(); + break; + case 6: + message.schema = reader.string(); + break; + case 7: + message.reward = BeamReward.decode(reader, reader.uint32()); + break; + case 8: + message.review = BeamReview.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Beam { + const message = { ...baseBeam } as Beam; + if (object.creator !== undefined && object.creator !== null) { + message.creator = String(object.creator); + } else { + message.creator = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.status !== undefined && object.status !== null) { + message.status = String(object.status); + } else { + message.status = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = String(object.secret); + } else { + message.secret = ''; + } + if (object.schema !== undefined && object.schema !== null) { + message.schema = String(object.schema); + } else { + message.schema = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromJSON(object.review); + } else { + message.review = undefined; + } + return message; + }, + + toJSON(message: Beam): unknown { + const obj: any = {}; + message.creator !== undefined && (obj.creator = message.creator); + message.id !== undefined && (obj.id = message.id); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.status !== undefined && (obj.status = message.status); + message.secret !== undefined && (obj.secret = message.secret); + message.schema !== undefined && (obj.schema = message.schema); + message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): Beam { + const message = { ...baseBeam } as Beam; + if (object.creator !== undefined && object.creator !== null) { + message.creator = object.creator; + } else { + message.creator = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.status !== undefined && object.status !== null) { + message.status = object.status; + } else { + message.status = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = object.secret; + } else { + message.secret = ''; + } + if (object.schema !== undefined && object.schema !== null) { + message.schema = object.schema; + } else { + message.schema = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromPartial(object.review); + } else { + message.review = undefined; + } + return message; + }, +}; + +const baseMsgOpenBeam: object = { id: '', creator: '', amount: Long.ZERO, secret: '' }; + +export const MsgOpenBeam = { + encode(message: MsgOpenBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== '') { + writer.uint32(10).string(message.id); + } + if (message.creator !== '') { + writer.uint32(18).string(message.creator); + } + if (!message.amount.isZero()) { + writer.uint32(24).int64(message.amount); + } + if (message.secret !== '') { + writer.uint32(34).string(message.secret); + } + if (message.reward !== undefined) { + BeamReward.encode(message.reward, writer.uint32(42).fork()).ldelim(); + } + if (message.review !== undefined) { + BeamReview.encode(message.review, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgOpenBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.string(); + break; + case 2: + message.creator = reader.string(); + break; + case 3: + message.amount = reader.int64() as Long; + break; + case 4: + message.secret = reader.string(); + break; + case 5: + message.reward = BeamReward.decode(reader, reader.uint32()); + break; + case 6: + message.review = BeamReview.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgOpenBeam { + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.creator !== undefined && object.creator !== null) { + message.creator = String(object.creator); + } else { + message.creator = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = String(object.secret); + } else { + message.secret = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromJSON(object.review); + } else { + message.review = undefined; + } + return message; + }, + + toJSON(message: MsgOpenBeam): unknown { + const obj: any = {}; + message.id !== undefined && (obj.id = message.id); + message.creator !== undefined && (obj.creator = message.creator); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.secret !== undefined && (obj.secret = message.secret); + message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): MsgOpenBeam { + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.creator !== undefined && object.creator !== null) { + message.creator = object.creator; + } else { + message.creator = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = object.secret; + } else { + message.secret = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromPartial(object.review); + } else { + message.review = undefined; + } + return message; + }, +}; + +const baseMsgUpdateBeam: object = { updater: '', id: '', amount: Long.ZERO }; + +export const MsgUpdateBeam = { + encode(message: MsgUpdateBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.updater !== '') { + writer.uint32(10).string(message.updater); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + if (!message.amount.isZero()) { + writer.uint32(24).int64(message.amount); + } + if (message.reward !== undefined) { + BeamReward.encode(message.reward, writer.uint32(34).fork()).ldelim(); + } + if (message.review !== undefined) { + BeamReview.encode(message.review, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.updater = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + case 3: + message.amount = reader.int64() as Long; + break; + case 4: + message.reward = BeamReward.decode(reader, reader.uint32()); + break; + case 5: + message.review = BeamReview.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgUpdateBeam { + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = String(object.updater); + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromJSON(object.review); + } else { + message.review = undefined; + } + return message; + }, + + toJSON(message: MsgUpdateBeam): unknown { + const obj: any = {}; + message.updater !== undefined && (obj.updater = message.updater); + message.id !== undefined && (obj.id = message.id); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): MsgUpdateBeam { + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = object.updater; + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamReview.fromPartial(object.review); + } else { + message.review = undefined; + } + return message; + }, +}; + +const baseMsgCancelBeam: object = { updater: '', id: '' }; + +export const MsgCancelBeam = { + encode(message: MsgCancelBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.updater !== '') { + writer.uint32(10).string(message.updater); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgCancelBeam } as MsgCancelBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.updater = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgCancelBeam { + const message = { ...baseMsgCancelBeam } as MsgCancelBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = String(object.updater); + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + return message; + }, + + toJSON(message: MsgCancelBeam): unknown { + const obj: any = {}; + message.updater !== undefined && (obj.updater = message.updater); + message.id !== undefined && (obj.id = message.id); + return obj; + }, + + fromPartial(object: DeepPartial): MsgCancelBeam { + const message = { ...baseMsgCancelBeam } as MsgCancelBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = object.updater; + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + return message; + }, +}; + +const baseMsgCloseBeam: object = { updater: '', id: '' }; + +export const MsgCloseBeam = { + encode(message: MsgCloseBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.updater !== '') { + writer.uint32(10).string(message.updater); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgCloseBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgCloseBeam } as MsgCloseBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.updater = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgCloseBeam { + const message = { ...baseMsgCloseBeam } as MsgCloseBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = String(object.updater); + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + return message; + }, + + toJSON(message: MsgCloseBeam): unknown { + const obj: any = {}; + message.updater !== undefined && (obj.updater = message.updater); + message.id !== undefined && (obj.id = message.id); + return obj; + }, + + fromPartial(object: DeepPartial): MsgCloseBeam { + const message = { ...baseMsgCloseBeam } as MsgCloseBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = object.updater; + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + return message; + }, +}; + +const baseMsgClaimBeam: object = { claimer: '', id: '', secret: '' }; + +export const MsgClaimBeam = { + encode(message: MsgClaimBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.claimer !== '') { + writer.uint32(10).string(message.claimer); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + if (message.secret !== '') { + writer.uint32(26).string(message.secret); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgClaimBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.claimer = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + case 3: + message.secret = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgClaimBeam { + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + if (object.claimer !== undefined && object.claimer !== null) { + message.claimer = String(object.claimer); + } else { + message.claimer = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = String(object.secret); + } else { + message.secret = ''; + } + return message; + }, + + toJSON(message: MsgClaimBeam): unknown { + const obj: any = {}; + message.claimer !== undefined && (obj.claimer = message.claimer); + message.id !== undefined && (obj.id = message.id); + message.secret !== undefined && (obj.secret = message.secret); + return obj; + }, + + fromPartial(object: DeepPartial): MsgClaimBeam { + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + if (object.claimer !== undefined && object.claimer !== null) { + message.claimer = object.claimer; + } else { + message.claimer = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = object.secret; + } else { + message.secret = ''; + } + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; +export type DeepPartial = T extends Builtin + ? T + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in keyof T]?: DeepPartial } + : Partial; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} diff --git a/src/messages/bank/MsgMultiSend.ts b/src/messages/bank/MsgMultiSend.ts index 29ee9de..2efd291 100644 --- a/src/messages/bank/MsgMultiSend.ts +++ b/src/messages/bank/MsgMultiSend.ts @@ -1,20 +1,15 @@ import { Message } from '../Message'; -import { Coin } from '../../types'; +import { MsgMultiSend } from '../../codec/cosmos/bank/v1beta1/tx'; +import { Input, Output } from '../../codec/cosmos/bank/v1beta1/bank'; export const MsgMultiSendUrl = '/cosmos.bank.v1beta1.MsgMultiSend'; -/** MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ -export interface MsgMultiSend { - input: { address: string; coins: Coin[] }[]; - output: { address: string; coins: Coin[] }[]; -} - -export const BuildMsgMultiSend = (input: { address: string; coins: Coin[] }[], output: { address: string; coins: Coin[] }[]): Message => { +export const BuildMsgMultiSend = (inputs: Input[], outputs: Output[]): Message => { return { typeUrl: MsgMultiSendUrl, value: { - input, - output, + inputs, + outputs, } as MsgMultiSend, }; }; diff --git a/src/messages/bank/MsgSend.ts b/src/messages/bank/MsgSend.ts index fd04976..0dcac8a 100644 --- a/src/messages/bank/MsgSend.ts +++ b/src/messages/bank/MsgSend.ts @@ -1,15 +1,9 @@ import { Message } from '../Message'; import { Coin } from '../../types'; +import { MsgSend } from '../../codec/cosmos/bank/v1beta1/tx'; export const MsgSendUrl = '/cosmos.bank.v1beta1.MsgSend'; -/** MsgSend represents a message to send coins from one account to another. */ -export interface MsgSend { - fromAddress: string; - toAddress: string; - amount: Coin[]; -} - export const BuildMsgSend = (fromAddress: string, toAddress: string, amount: Coin[]): Message => { return { typeUrl: MsgSendUrl, diff --git a/src/messages/beam/MsgCancelBeam.ts b/src/messages/beam/MsgCancelBeam.ts new file mode 100644 index 0000000..ce536fa --- /dev/null +++ b/src/messages/beam/MsgCancelBeam.ts @@ -0,0 +1,14 @@ +import { Message } from '../Message'; +import { MsgCancelBeam } from '../../codec/chain/beam/beam'; + +export const MsgCancelBeamUrl = '/lum.network.beam.MsgCancelBeam'; + +export const BuildMsgCancelBeam = (updater: string, id: string): Message => { + return { + typeUrl: MsgCancelBeamUrl, + value: { + updater, + id, + } as MsgCancelBeam, + }; +}; diff --git a/src/messages/beam/MsgClaimBeam.ts b/src/messages/beam/MsgClaimBeam.ts new file mode 100644 index 0000000..a473e90 --- /dev/null +++ b/src/messages/beam/MsgClaimBeam.ts @@ -0,0 +1,15 @@ +import { Message } from '../Message'; +import { MsgClaimBeam } from '../../codec/chain/beam/beam'; + +export const MsgClaimBeamUrl = '/lum.network.beam.MsgClaimBeam'; + +export const BuildMsgClaimBeam = (claimer: string, id: string, secret: string): Message => { + return { + typeUrl: MsgClaimBeamUrl, + value: { + claimer, + id, + secret, + } as MsgClaimBeam, + }; +}; diff --git a/src/messages/beam/MsgOpenBeam.ts b/src/messages/beam/MsgOpenBeam.ts new file mode 100644 index 0000000..9377443 --- /dev/null +++ b/src/messages/beam/MsgOpenBeam.ts @@ -0,0 +1,19 @@ +import { Message } from '../Message'; +import { BeamReview, BeamReward, MsgOpenBeam } from '../../codec/chain/beam/beam'; +import Long from 'long'; + +export const MsgOpenBeamUrl = '/lum.network.beam.MsgOpenBeam'; + +export const BuildMsgOpenBeam = (id: string, creator: string, amount: Long, secret: string, reward?: BeamReward, review?: BeamReview): Message => { + return { + typeUrl: MsgOpenBeamUrl, + value: { + id, + creator, + amount, + secret, + reward, + review, + } as MsgOpenBeam, + }; +}; diff --git a/src/messages/beam/MsgUpdateBeam.ts b/src/messages/beam/MsgUpdateBeam.ts new file mode 100644 index 0000000..b93944e --- /dev/null +++ b/src/messages/beam/MsgUpdateBeam.ts @@ -0,0 +1,18 @@ +import { Message } from '../Message'; +import { BeamReview, BeamReward, MsgUpdateBeam } from '../../codec/chain/beam/beam'; +import Long from 'long'; + +export const MsgUpdateBeamUrl = '/lum.network.beam.MsgUpdateBeam'; + +export const BuildMsgUpdateBeam = (updater: string, id: string, amount: Long, reward?: BeamReward, review?: BeamReview): Message => { + return { + typeUrl: MsgUpdateBeamUrl, + value: { + updater, + id, + amount, + reward, + review, + } as MsgUpdateBeam, + }; +}; diff --git a/src/messages/beam/index.ts b/src/messages/beam/index.ts new file mode 100644 index 0000000..7c72ab6 --- /dev/null +++ b/src/messages/beam/index.ts @@ -0,0 +1,4 @@ +export * from './MsgCancelBeam'; +export * from './MsgClaimBeam'; +export * from './MsgOpenBeam'; +export * from './MsgUpdateBeam'; diff --git a/src/messages/distribution/MsgFundCommunityPool.ts b/src/messages/distribution/MsgFundCommunityPool.ts index 5f518aa..9f4167f 100644 --- a/src/messages/distribution/MsgFundCommunityPool.ts +++ b/src/messages/distribution/MsgFundCommunityPool.ts @@ -1,17 +1,9 @@ import { Message } from '../Message'; import { Coin } from '../../types'; +import { MsgFundCommunityPool } from '../../codec/cosmos/distribution/v1beta1/tx'; export const MsgFundCommunityPoolUrl = '/cosmos.distribution.v1beta1.MsgFundCommunityPool'; -/** - * MsgFundCommunityPool allows an account to directly - * fund the community pool. - */ -export interface MsgFundCommunityPool { - amount: Coin[]; - depositor: string; -} - export const BuildMsgFundCommunityPool = (depositor: string, amount: Coin[]): Message => { return { typeUrl: MsgFundCommunityPoolUrl, diff --git a/src/messages/distribution/MsgSetWithdrawAddress.ts b/src/messages/distribution/MsgSetWithdrawAddress.ts index 13ebea2..09e16fe 100644 --- a/src/messages/distribution/MsgSetWithdrawAddress.ts +++ b/src/messages/distribution/MsgSetWithdrawAddress.ts @@ -1,16 +1,8 @@ import { Message } from '../Message'; +import { MsgSetWithdrawAddress } from '../../codec/cosmos/distribution/v1beta1/tx'; export const MsgSetWithdrawAddressUrl = '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress'; -/** - * MsgSetWithdrawAddress sets the withdraw address for - * a delegator (or validator self-delegation). - */ -export interface MsgSetWithdrawAddress { - delegatorAddress: string; - withdrawAddress: string; -} - export const BuildMsgSetWithdrawAddress = (delegatorAddress: string, withdrawAddress: string): Message => { return { typeUrl: MsgSetWithdrawAddressUrl, diff --git a/src/messages/distribution/MsgWithdrawDelegatorReward.ts b/src/messages/distribution/MsgWithdrawDelegatorReward.ts index 72990ab..4c36d85 100644 --- a/src/messages/distribution/MsgWithdrawDelegatorReward.ts +++ b/src/messages/distribution/MsgWithdrawDelegatorReward.ts @@ -1,16 +1,8 @@ import { Message } from '../Message'; +import { MsgWithdrawDelegatorReward } from '../../codec/cosmos/distribution/v1beta1/tx'; export const MsgWithdrawDelegatorRewardUrl = '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward'; -/** - * MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator - * from a single validator. - */ -export interface MsgWithdrawDelegatorReward { - delegatorAddress: string; - validatorAddress: string; -} - export const BuildMsgWithdrawDelegatorReward = (delegatorAddress: string, validatorAddress: string): Message => { return { typeUrl: MsgWithdrawDelegatorRewardUrl, diff --git a/src/messages/distribution/MsgWithdrawValidatorCommission.ts b/src/messages/distribution/MsgWithdrawValidatorCommission.ts index f6538df..6363b83 100644 --- a/src/messages/distribution/MsgWithdrawValidatorCommission.ts +++ b/src/messages/distribution/MsgWithdrawValidatorCommission.ts @@ -1,15 +1,8 @@ import { Message } from '../Message'; +import { MsgWithdrawValidatorCommission } from '../../codec/cosmos/distribution/v1beta1/tx'; export const MsgWithdrawValidatorCommissionUrl = '/cosmos.bank.v1beta1.MsgSend'; -/** - * MsgWithdrawValidatorCommission withdraws the full commission to the validator - * address. - */ -export interface MsgWithdrawValidatorCommission { - validatorAddress: string; -} - export const BuildMsgWithdrawValidatorCommission = (validatorAddress: string): Message => { return { typeUrl: MsgWithdrawValidatorCommissionUrl, diff --git a/src/messages/faucet/MsgMintAndSend.ts b/src/messages/faucet/MsgMintAndSend.ts deleted file mode 100644 index 81ed074..0000000 --- a/src/messages/faucet/MsgMintAndSend.ts +++ /dev/null @@ -1,21 +0,0 @@ -export const MsgMintAndSendUrl = '/lum.network.faucet.MsgMintAndSend'; - -/** - * MsgMintAndSend defines a SDK message asking the faucet module to send you - * a set of coins, for testing purposes only. - * This module is ONLY enabled in testnet - */ -export interface MsgMintAndSend { - minter: string; - mintTime: Date; -} - -export const BuildMsgMintAndSend = (minter: string, mintTime: Date) => { - return { - typeUrl: MsgMintAndSendUrl, - value: { - minter, - mintTime, - } as MsgMintAndSend, - }; -}; diff --git a/src/messages/faucet/index.ts b/src/messages/faucet/index.ts deleted file mode 100644 index b85e870..0000000 --- a/src/messages/faucet/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './MsgMintAndSend'; diff --git a/src/messages/index.ts b/src/messages/index.ts index c4df29d..5e959c8 100644 --- a/src/messages/index.ts +++ b/src/messages/index.ts @@ -1,5 +1,5 @@ export * from './Message'; export * from './bank'; +export * from './beam'; export * from './distribution'; export * from './staking'; -export * from './faucet'; diff --git a/src/messages/staking/MsgBeginRedelegate.ts b/src/messages/staking/MsgBeginRedelegate.ts index ed18eac..7e063b4 100644 --- a/src/messages/staking/MsgBeginRedelegate.ts +++ b/src/messages/staking/MsgBeginRedelegate.ts @@ -1,19 +1,9 @@ import { Message } from '../Message'; import { Coin } from '../../types'; +import { MsgBeginRedelegate } from '../../codec/cosmos/staking/v1beta1/tx'; export const MsgBeginRedelegateUrl = '/cosmos.staking.v1beta1.MsgBeginRedelegate'; -/** - * MsgBeginRedelegate defines a SDK message for performing a redelegation - * of coins from a delegator and source validator to a destination validator. - */ -export interface MsgBeginRedelegate { - delegatorAddress: string; - validatorSrcAddress: string; - validatorDstAddress: string; - amount?: Coin; -} - export const BuildMsgBeginRedelegate = (delegatorAddress: string, validatorSrcAddress: string, validatorDstAddress: string, amount?: Coin): Message => { return { typeUrl: MsgBeginRedelegateUrl, diff --git a/src/messages/staking/MsgCreateValidator.ts b/src/messages/staking/MsgCreateValidator.ts index 2922602..f0e7f1c 100644 --- a/src/messages/staking/MsgCreateValidator.ts +++ b/src/messages/staking/MsgCreateValidator.ts @@ -1,20 +1,10 @@ import { Message } from '../Message'; import { Coin, Description, CommissionRates } from '../../types'; import { Any } from '../../codec/google/protobuf/any'; +import { MsgCreateValidator } from '../../codec/cosmos/staking/v1beta1/tx'; export const MsgCreateValidatorUrl = '/cosmos.staking.v1beta1.MsgCreateValidator'; -/** MsgCreateValidator defines a SDK message for creating a new validator. */ -export interface MsgCreateValidator { - description?: Description; - commission?: CommissionRates; - minSelfDelegation: string; - delegatorAddress: string; - validatorAddress: string; - pubkey?: Any; - value?: Coin; -} - export const BuildMsgCreateValidator = ( validatorAddress: string, delegatorAddress: string, diff --git a/src/messages/staking/MsgDelegate.ts b/src/messages/staking/MsgDelegate.ts index 1c85f0d..8e5dd32 100644 --- a/src/messages/staking/MsgDelegate.ts +++ b/src/messages/staking/MsgDelegate.ts @@ -1,18 +1,9 @@ import { Message } from '../Message'; import { Coin } from '../../types'; +import { MsgDelegate } from '../../codec/cosmos/staking/v1beta1/tx'; export const MsgDelegateUrl = '/cosmos.staking.v1beta1.MsgDelegate'; -/** - * MsgDelegate defines a SDK message for performing a delegation of coins - * from a delegator to a validator. - */ -export interface MsgDelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} - export const BuildMsgDelegate = (delegatorAddress: string, validatorAddress: string, amount?: Coin): Message => { return { typeUrl: MsgDelegateUrl, diff --git a/src/messages/staking/MsgEditValidator.ts b/src/messages/staking/MsgEditValidator.ts index e850af0..c919820 100644 --- a/src/messages/staking/MsgEditValidator.ts +++ b/src/messages/staking/MsgEditValidator.ts @@ -1,21 +1,9 @@ import { Message } from '../Message'; import { Description } from '../../types'; +import { MsgEditValidator } from '../../codec/cosmos/staking/v1beta1/tx'; export const MsgEditValidatorUrl = '/cosmos.staking.v1beta1.MsgEditValidator'; -/** MsgEditValidator defines a SDK message for editing an existing validator. */ -export interface MsgEditValidator { - description?: Description; - validatorAddress: string; - /** - * We pass a reference to the new commission rate and min self delegation as - * it's not mandatory to update. If not updated, the deserialized rate will be - * zero with no way to distinguish if an update was intended. - * REF: #2373 - */ - commissionRate: string; - minSelfDelegation: string; -} export const BuildMsgEditValidator = (validatorAddress: string, commissionRate: string, minSelfDelegation: string, description?: Description): Message => { return { typeUrl: MsgEditValidatorUrl, diff --git a/src/messages/staking/MsgUndelegate.ts b/src/messages/staking/MsgUndelegate.ts index fdf240d..f04a167 100644 --- a/src/messages/staking/MsgUndelegate.ts +++ b/src/messages/staking/MsgUndelegate.ts @@ -1,18 +1,9 @@ import { Message } from '../Message'; import { Coin } from '../../types'; +import { MsgUndelegate } from '../../codec/cosmos/staking/v1beta1/tx'; export const MsgUndelegateUrl = '/cosmos.staking.v1beta1.MsgUndelegate'; -/** - * MsgUndelegate defines a SDK message for performing an undelegation from a - * delegate and a validator. - */ -export interface MsgUndelegate { - delegatorAddress: string; - validatorAddress: string; - amount?: Coin; -} - export const BuildMsgUndelegate = (delegatorAddress: string, validatorAddress: string, amount?: Coin): Message => { return { typeUrl: MsgUndelegateUrl, diff --git a/src/registry/index.ts b/src/registry/index.ts index 32cb9f6..4f4c4a0 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -6,6 +6,7 @@ import { PubKey } from '../codec/cosmos/crypto/secp256k1/keys'; import { MsgSend, MsgMultiSend } from '../codec/cosmos/bank/v1beta1/tx'; import { MsgFundCommunityPool, MsgSetWithdrawAddress, MsgWithdrawDelegatorReward, MsgWithdrawValidatorCommission } from '../codec/cosmos/distribution/v1beta1/tx'; import { MsgBeginRedelegate, MsgCreateValidator, MsgDelegate, MsgEditValidator, MsgUndelegate } from '../codec/cosmos/staking/v1beta1/tx'; +import { MsgCancelBeam, MsgClaimBeam, MsgOpenBeam, MsgUpdateBeam } from '../codec/chain/beam/beam'; const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.crypto.ed25519.PubKey', PubKey as GeneratedType], @@ -20,6 +21,10 @@ const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.staking.v1beta1.MsgDelegate', MsgDelegate as GeneratedType], ['/cosmos.staking.v1beta1.MsgEditValidator', MsgEditValidator as GeneratedType], ['/cosmos.staking.v1beta1.MsgUndelegate', MsgUndelegate as GeneratedType], + ['/lum.network.beam.MsgOpenBeam', MsgOpenBeam as GeneratedType], + ['/lum.network.beam.MsgUpdateBeam', MsgUpdateBeam as GeneratedType], + ['/lum.network.beam.MsgCancelBeam', MsgCancelBeam as GeneratedType], + ['/lum.network.beam.MsgClaimBeam', MsgClaimBeam as GeneratedType], ]; class ExtendedRegistry extends Registry { @@ -27,5 +32,6 @@ class ExtendedRegistry extends Registry { return Tx.decode(tx); }; } + export const LumAminoRegistry = new AminoTypes(); export const LumRegistry = new ExtendedRegistry(registryTypes); diff --git a/tests/client.test.ts b/tests/client.test.ts index de2233b..c3d9d85 100644 --- a/tests/client.test.ts +++ b/tests/client.test.ts @@ -1,29 +1,78 @@ -import { LumWallet, LumWalletFactory, LumClient, LumUtils, LumConstants, LumRegistry, LumTypes } from '../src'; +import { LumWallet, LumWalletFactory, LumClient, LumUtils, LumConstants, LumRegistry, LumTypes, LumMessages } from "../src"; +import axios from "axios"; +import Long from "long"; -describe('LumClient', () => { +const sleep = (millis: number): Promise => { + return new Promise(resolve => setTimeout(resolve, millis)); +}; + +const randomString = (): string => { + return Math.random().toString(36).substring(7); +} + +describe("LumClient", () => { let clt: LumClient; let w1: LumWallet; let w2: LumWallet; beforeAll(async () => { - clt = await LumClient.connect('http://node0.testnet.lum.network/rpc'); + clt = await LumClient.connect("http://node0.testnet.lum.network/rpc"); + + // Prepare the wallets w1 = await LumWalletFactory.fromMnemonic(LumUtils.generateMnemonic()); w2 = await LumWalletFactory.fromMnemonic(LumUtils.generateMnemonic()); expect(w1.getAddress()).not.toEqual(w2.getAddress()); + + // Seed them with faucet coins each + await axios.get(`https://bridge.testnet.lum.network/faucet/${w1.getAddress()}`); + await axios.get(`https://bridge.testnet.lum.network/faucet/${w2.getAddress()}`); }); afterAll(async () => { await expect(clt.disconnect()).resolves.toBeTruthy(); }); - it('Should expose basic information', async () => { + it("Should be able to use beam features", async () => { + const beamId = randomString(); + + // Here we wait until the faucet transaction get dispatched and the account finally exists on the blockchain + // This should be improved since... you know... + let acc: LumTypes.Account = null; + while(acc === null){ + acc = await clt.getAccount(w1.getAddress()); + await sleep(1000); + } + expect(acc).toBeTruthy(); + + const chainId = await clt.getChainId(); + + const openBeamMsg = LumMessages.BuildMsgOpenBeam(beamId, w1.getAddress(), new Long(100), "test", null, null); + + const fee = { + amount: [{ denom: LumConstants.MicroLumDenom, amount: '1' }], + gas: '100000', + }; + const doc = { + accountNumber: acc.accountNumber, + chainId, + fee: fee, + memo: 'Just a open beam transaction', + messages: [openBeamMsg], + sequence: acc.sequence, + }; + + const tx = await clt.signAndBroadcastTx(w1, doc); + expect(tx.deliverTx.code).toBe(0); + }) + + it("Should expose basic information", async () => { const height = (await clt.getBlockHeight()) - 1; - expect(clt.getChainId()).resolves.toEqual('lumnetwork-testnet'); + expect(clt.getChainId()).resolves.toEqual("lumnetwork-testnet"); expect(height).toBeGreaterThan(0); expect(clt.getBlock(height)).resolves.toBeTruthy(); }); - it('should expose tendermint rpcs', async () => { + it("should expose tendermint rpcs", async () => { const height = (await clt.getBlockHeight()) - 1; expect(height).toBeGreaterThan(0); expect(clt.tmClient.health()).resolves.toBeNull(); @@ -36,7 +85,7 @@ describe('LumClient', () => { expect(clt.tmClient.validatorsAll(height)).resolves.toBeTruthy(); }); - it('Should expose bank module', async () => { + it("Should expose bank module", async () => { const supplies = await clt.queryClient.bank.unverified.totalSupply(); expect(supplies).toBeTruthy(); expect(supplies.length).toBeGreaterThan(0); @@ -45,7 +94,7 @@ describe('LumClient', () => { expect(parseFloat(lumSupply.amount)).toBeGreaterThan(0); }); - it('Should expose staking module', async () => { + it("Should expose staking module", async () => { const validators = await clt.tmClient.validatorsAll(); expect(validators.validators.length).toBeGreaterThanOrEqual(1); const block = await clt.getBlock(); @@ -67,7 +116,7 @@ describe('LumClient', () => { expect(bootVal).toBeTruthy(); // Get staking validator by matching it using pubkeys - const stakers = await clt.queryClient.staking.unverified.validators('BOND_STATUS_BONDED'); + const stakers = await clt.queryClient.staking.unverified.validators("BOND_STATUS_BONDED"); const bootStak = stakers.validators.filter((s) => LumUtils.toHex((LumRegistry.decode(s.consensusPubkey) as LumTypes.PubKey).key) === LumUtils.toHex(bootVal.pubkey.data))[0]; expect(bootVal).toBeTruthy(); @@ -85,7 +134,7 @@ describe('LumClient', () => { expect(parseFloat(lumBalance.amount)).toBeGreaterThan(0); }); - it('Should expose distribution module', async () => { + it("Should expose distribution module", async () => { // Get validators const validators = await clt.tmClient.validatorsAll(); expect(validators.validators.length).toBeGreaterThanOrEqual(1); @@ -98,7 +147,7 @@ describe('LumClient', () => { expect(bootVal).toBeTruthy(); // Get genesis validator account address - const stakers = await clt.queryClient.staking.unverified.validators('BOND_STATUS_BONDED'); + const stakers = await clt.queryClient.staking.unverified.validators("BOND_STATUS_BONDED"); const bootStak = stakers.validators.filter((s) => LumUtils.toHex((LumRegistry.decode(s.consensusPubkey) as LumTypes.PubKey).key) === LumUtils.toHex(bootVal.pubkey.data))[0]; expect(bootVal).toBeTruthy(); @@ -114,4 +163,8 @@ describe('LumClient', () => { expect(delegValidators).toBeTruthy(); expect(delegValidators.validators.length).toBeGreaterThan(0); }); + + it("Should open a beam", async () => { + + }); }); diff --git a/tests/faucet.test.ts b/tests/faucet.test.ts deleted file mode 100644 index acf7c1a..0000000 --- a/tests/faucet.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { LumClient, LumUtils, LumWallet, LumWalletFactory } from '../src'; - -describe('Faucet', () => { - let clt: LumClient; - let w1: LumWallet; - - beforeAll(async () => { - clt = await LumClient.connect('http://node0.testnet.lum.network/rpc'); - w1 = await LumWalletFactory.fromMnemonic(LumUtils.generateMnemonic()); - }); - - afterAll(async () => { - await expect(clt.disconnect()).resolves.toBeTruthy(); - }); - - it('Should build and dispatch a mint message', async () => { - // WIP - // const mintMsg = LumMessages.BuildMsgMintAndSend(w1.getAddress(), new Date()); - // const fee = { - // amount: [{ denom: LumConstants.MicroLumDenom, amount: '0' }], - // gas: '100000', - // }; - // const chainId = await clt.getChainId(); - // const acc = await clt.getAccount(w1.getAddress()); - // const doc = { - // accountNumber: acc.accountNumber, - // chainId, - // fee: fee, - // memo: 'I need a dollar!', - // messages: [mintMsg], - // sequence: acc.sequence, - // }; - // const broadcastResult = await clt.signAndBroadcastTx(w1, doc); - // expect(LumUtils.broadcastTxCommitSuccess(broadcastResult)).toBeTruthy(); - }); -}); diff --git a/yarn.lock b/yarn.lock index 45efd73..7549336 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6245,24 +6245,25 @@ ts-poet@^4.5.0: lodash "^4.17.15" prettier "^2.0.2" -ts-proto-descriptors@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-proto-descriptors/-/ts-proto-descriptors-1.2.0.tgz#47fdef5dc640d2c87fbe0c010678f009e79f63bc" - integrity sha512-0t2WITzCiQ/3H6zPuFrFFOj2jhH6xZNu7agS7aKecKrz7tjRMW9VrmlBlJXslTTC3K7/4phV4qlsP5fOfLxuDg== +ts-proto-descriptors@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-proto-descriptors/-/ts-proto-descriptors-1.2.1.tgz#3ff4e2bfcabaf1a59e8faff6f0518cd5d25fa16e" + integrity sha512-iSHiQAaovi9sBwjiSCca/E089uv0IMt9Cfe0wV5AJwZppGa47yfih97Q+1006bdSLWkxf5Pk3VDQnt1yRTMV8w== dependencies: + long "^4.0.0" protobufjs "^6.8.8" -ts-proto@^1.67.0: - version "1.67.0" - resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.67.0.tgz#27c45852e5640daa260750a91341026e49dfce40" - integrity sha512-+a7zleIP3EuZucu8B/HgSqzZarYHSeZ9z2KYK0/P9K8meSuLKBFB5yipYU0VK78FxAdX+u//ZTGvwe2Pzq1XfA== +ts-proto@^1.79.7: + version "1.79.7" + resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.79.7.tgz#48d96f8cfb891da57b07f3f0dd9f0231801069d1" + integrity sha512-r6tO0XjGXb0zLckAPmxCaw1jaG0hPqiIoXLuXtToezY3vlkOs/FGn26RyVY8RtgqwEPDo7SnY1CS6G0O03VHfA== dependencies: "@types/object-hash" "^1.3.0" dataloader "^1.4.0" object-hash "^1.3.1" protobufjs "^6.8.8" ts-poet "^4.5.0" - ts-proto-descriptors "^1.2.0" + ts-proto-descriptors "^1.2.1" tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" From 485f28cee44f3cb3b13fe536ad9ef7eced518850 Mon Sep 17 00:00:00 2001 From: Enguerrand Pinot Date: Mon, 10 May 2021 16:44:54 +0200 Subject: [PATCH 2/3] 0.3.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4ae1d36..84f1e8c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lum-network/sdk-javascript", - "version": "0.3.5", + "version": "0.3.6", "license": "Apache-2.0", "description": "Javascript SDK library for NodeJS and Web browsers to interact with the Lum Network.", "homepage": "https://github.com/lum-network/sdk-javascript#readme", From 036b2a73e6720ef1530371e407477fb4fc4075de Mon Sep 17 00:00:00 2001 From: Segfault <5221072+Segfaultd@users.noreply.github.com> Date: Tue, 18 May 2021 12:55:35 +0200 Subject: [PATCH 3/3] Protocol upgrade --- scripts/define-proto.sh | 4 +- scripts/get-proto.sh | 8 +- src/codec/chain/beam/beam.ts | 2097 +++++++++++++--------------- src/codec/chain/beam/query.ts | 312 +++++ src/codec/chain/beam/tx.ts | 433 ++++++ src/messages/beam/MsgCancelBeam.ts | 14 - src/messages/beam/MsgClaimBeam.ts | 2 +- src/messages/beam/MsgOpenBeam.ts | 6 +- src/messages/beam/MsgUpdateBeam.ts | 6 +- src/messages/beam/index.ts | 1 - src/registry/index.ts | 3 +- 11 files changed, 1729 insertions(+), 1157 deletions(-) create mode 100644 src/codec/chain/beam/query.ts create mode 100644 src/codec/chain/beam/tx.ts delete mode 100644 src/messages/beam/MsgCancelBeam.ts diff --git a/scripts/define-proto.sh b/scripts/define-proto.sh index b8bfe35..9c810f4 100644 --- a/scripts/define-proto.sh +++ b/scripts/define-proto.sh @@ -47,7 +47,9 @@ protoc \ "$THIRD_PARTY_PROTO_DIR/tendermint/types/types.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/types/validator.proto" \ "$THIRD_PARTY_PROTO_DIR/tendermint/version/types.proto" \ - "$LUM_PROTO_DIR/chain/beam/beam.proto" + "$LUM_PROTO_DIR/beam/beam.proto" \ + "$LUM_PROTO_DIR/beam/query.proto" \ + "$LUM_PROTO_DIR/beam/tx.proto" # Remove unnecessary codec files rm -rf \ diff --git a/scripts/get-proto.sh b/scripts/get-proto.sh index 228f027..48ff54c 100644 --- a/scripts/get-proto.sh +++ b/scripts/get-proto.sh @@ -9,6 +9,7 @@ ZIP_FILE="$COSMOS_DIR/tmp.zip" LUM_NETWORK_DIR="$PROTO_DIR/lum-network" LUM_NETWORK_SDK_DIR="$LUM_NETWORK_DIR/chain" +ZIP_LUM_FILE="$LUM_NETWORK_DIR/tmp.zip" REF=${REF:-"master"} SUFFIX=${REF} @@ -25,7 +26,10 @@ mv "$COSMOS_SDK_DIR-$SUFFIX" "$COSMOS_SDK_DIR" rm "$ZIP_FILE" # Create the lum network dir -mkdir -p "$LUM_NETWORK_SDK_DIR/proto/chain/beam" +mkdir -p "$LUM_NETWORK_DIR" # Download the beam archive -wget -qO "$LUM_NETWORK_SDK_DIR/proto/chain/beam/beam.proto" "https://raw.githubusercontent.com/lum-network/chain/master/proto/beam/beam.proto?token=ABH2VUAPWO3DRGHMRGXWZWDASVAMY" +wget -qO "$ZIP_LUM_FILE" "https://github.com/lum-network/chain/archive/$REF.zip" +unzip "$ZIP_LUM_FILE" "*.proto" -d "$LUM_NETWORK_DIR" +mv "$LUM_NETWORK_SDK_DIR-$SUFFIX" "$LUM_NETWORK_SDK_DIR" +rm "$ZIP_LUM_FILE" diff --git a/src/codec/chain/beam/beam.ts b/src/codec/chain/beam/beam.ts index 85c8630..e55e6d7 100644 --- a/src/codec/chain/beam/beam.ts +++ b/src/codec/chain/beam/beam.ts @@ -4,158 +4,202 @@ import _m0 from 'protobufjs/minimal'; export const protobufPackage = 'lum.network.beam'; -export interface BeamReward { - rewards: BeamReward_BeamRewardDetails[]; +export enum BeamState { + OPEN = 0, + CANCELED = 1, + CLOSED = 2, + CLAIMED = 3, + UNRECOGNIZED = -1, } -export interface BeamReward_BeamRewardDetails { - name: string; - amount: Long; - maxAmount: Long; - currency: string; - status: string; +export function beamStateFromJSON(object: any): BeamState { + switch (object) { + case 0: + case 'OPEN': + return BeamState.OPEN; + case 1: + case 'CANCELED': + return BeamState.CANCELED; + case 2: + case 'CLOSED': + return BeamState.CLOSED; + case 3: + case 'CLAIMED': + return BeamState.CLAIMED; + case -1: + case 'UNRECOGNIZED': + default: + return BeamState.UNRECOGNIZED; + } +} + +export function beamStateToJSON(object: BeamState): string { + switch (object) { + case BeamState.OPEN: + return 'OPEN'; + case BeamState.CANCELED: + return 'CANCELED'; + case BeamState.CLOSED: + return 'CLOSED'; + case BeamState.CLAIMED: + return 'CLAIMED'; + default: + return 'UNKNOWN'; + } } -export interface BeamReview { - reviewer?: BeamReview_BeamReviewReviewer; - merchantReview?: BeamReview_BeamReviewMerchantReview; - productsReviews: BeamReview_BeamReviewProductReview[]; +export interface BeamMedia { + mimetype: string; + url: string; + thumbnailUrl: string; } -export interface BeamReview_BeamReviewReviewer { +export interface BeamReviewer { reviewerId: string; name: string; isAnonymous: boolean; } -export interface BeamReview_BeamReviewMerchantReview { +export interface BeamVerifier { + name: string; + url: string; + signature: string; +} + +export interface BeamReward { + trigger: string; + amount: number; + maxAmount: number; + currency: string; + status: string; + details: BeamReward_BeamRewardDetails[]; +} + +export interface BeamReward_BeamRewardDetails { + type: string; + amount: number; + maxAmount: number; + status: string; +} + +export interface BeamMerchantReview { + orderId: string; reviewId: string; merchantUrl: string; ratingUrl: string; reviewUrl: string; + collectionMethod: string; timestamp: string; - ratings: { [key: string]: Long }; + ratings?: BeamMerchantReview_BeamMerchantReviewRating; title: string; - content: { [key: string]: string }; + content?: BeamMerchantReview_BeamMerchantReviewContent; } -export interface BeamReview_BeamReviewMerchantReview_RatingsEntry { - key: string; - value: Long; +export interface BeamMerchantReview_BeamMerchantReviewRating { + overall: number; + customerService: number; + nps: number; } -export interface BeamReview_BeamReviewMerchantReview_ContentEntry { - key: string; - value: string; +export interface BeamMerchantReview_BeamMerchantReviewContent { + overall: string; + customerService: string; } -export interface BeamReview_BeamReviewProductReview { +export interface BeamProductReview { + orderId: string; reviewId: string; ratingUrl: string; reviewUrl: string; collectionMethod: string; timestamp: string; - ratings: { [key: string]: Long }; + ratings?: BeamProductReview_BeamProductReviewRating; title: string; - content: { [key: string]: string }; - medias: BeamReview_BeamReviewProductReview_Media[]; - products: BeamReview_BeamReviewProductReview_Product[]; + content?: BeamProductReview_BeamProductReviewContent; + medias: BeamMedia[]; + products: BeamProductReview_BeamProduct[]; } -export interface BeamReview_BeamReviewProductReview_Media { - mimetype: string; - url: string; - thumbnailUrl: string; +export interface BeamProductReview_BeamProductReviewRating { + overall: number; + quality: number; } -export interface BeamReview_BeamReviewProductReview_Product { +export interface BeamProductReview_BeamProductReviewContent { + overall: string; + pros: string; + cons: string; +} + +export interface BeamProductReview_BeamProduct { name: string; url: string; - brands: string[]; - ids?: BeamReview_BeamReviewProductReview_Product_ProductIds; + urls: string[]; + ids?: BeamProductReview_BeamProduct_BeamProductIds; } -export interface BeamReview_BeamReviewProductReview_Product_ProductIds { +export interface BeamProductReview_BeamProduct_BeamProductIds { gtins: string[]; mpns: string[]; skus: string[]; asins: string[]; } -export interface BeamReview_BeamReviewProductReview_RatingsEntry { - key: string; - value: Long; +export interface BeamSchemeReview { + reward?: BeamReward; + verifier?: BeamVerifier; + reviewer?: BeamReviewer; + merchantReview?: BeamMerchantReview; + productsReviews: BeamProductReview[]; } -export interface BeamReview_BeamReviewProductReview_ContentEntry { - key: string; - value: string; +export interface BeamSchemeReward { + reward?: BeamReward; + verifier?: BeamVerifier; } export interface Beam { creator: string; id: string; amount: Long; - status: string; + status: BeamState; secret: string; schema: string; - reward?: BeamReward; - review?: BeamReview; -} - -export interface MsgOpenBeam { - id: string; - creator: string; - amount: Long; - secret: string; - reward?: BeamReward; - review?: BeamReview; -} - -export interface MsgUpdateBeam { - updater: string; - id: string; - amount: Long; - reward?: BeamReward; - review?: BeamReview; -} - -export interface MsgCancelBeam { - updater: string; - id: string; -} - -export interface MsgCloseBeam { - updater: string; - id: string; -} - -export interface MsgClaimBeam { - claimer: string; - id: string; - secret: string; + reward?: BeamSchemeReward; + review?: BeamSchemeReview; } -const baseBeamReward: object = {}; +const baseBeamMedia: object = { mimetype: '', url: '', thumbnailUrl: '' }; -export const BeamReward = { - encode(message: BeamReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.rewards) { - BeamReward_BeamRewardDetails.encode(v!, writer.uint32(10).fork()).ldelim(); +export const BeamMedia = { + encode(message: BeamMedia, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.mimetype !== '') { + writer.uint32(10).string(message.mimetype); + } + if (message.url !== '') { + writer.uint32(18).string(message.url); + } + if (message.thumbnailUrl !== '') { + writer.uint32(26).string(message.thumbnailUrl); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamMedia { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReward } as BeamReward; - message.rewards = []; + const message = { ...baseBeamMedia } as BeamMedia; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.rewards.push(BeamReward_BeamRewardDetails.decode(reader, reader.uint32())); + message.mimetype = reader.string(); + break; + case 2: + message.url = reader.string(); + break; + case 3: + message.thumbnailUrl = reader.string(); break; default: reader.skipType(tag & 7); @@ -165,82 +209,86 @@ export const BeamReward = { return message; }, - fromJSON(object: any): BeamReward { - const message = { ...baseBeamReward } as BeamReward; - message.rewards = []; - if (object.rewards !== undefined && object.rewards !== null) { - for (const e of object.rewards) { - message.rewards.push(BeamReward_BeamRewardDetails.fromJSON(e)); - } + fromJSON(object: any): BeamMedia { + const message = { ...baseBeamMedia } as BeamMedia; + if (object.mimetype !== undefined && object.mimetype !== null) { + message.mimetype = String(object.mimetype); + } else { + message.mimetype = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = String(object.url); + } else { + message.url = ''; + } + if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { + message.thumbnailUrl = String(object.thumbnailUrl); + } else { + message.thumbnailUrl = ''; } return message; }, - toJSON(message: BeamReward): unknown { + toJSON(message: BeamMedia): unknown { const obj: any = {}; - if (message.rewards) { - obj.rewards = message.rewards.map((e) => (e ? BeamReward_BeamRewardDetails.toJSON(e) : undefined)); - } else { - obj.rewards = []; - } + message.mimetype !== undefined && (obj.mimetype = message.mimetype); + message.url !== undefined && (obj.url = message.url); + message.thumbnailUrl !== undefined && (obj.thumbnailUrl = message.thumbnailUrl); return obj; }, - fromPartial(object: DeepPartial): BeamReward { - const message = { ...baseBeamReward } as BeamReward; - message.rewards = []; - if (object.rewards !== undefined && object.rewards !== null) { - for (const e of object.rewards) { - message.rewards.push(BeamReward_BeamRewardDetails.fromPartial(e)); - } + fromPartial(object: DeepPartial): BeamMedia { + const message = { ...baseBeamMedia } as BeamMedia; + if (object.mimetype !== undefined && object.mimetype !== null) { + message.mimetype = object.mimetype; + } else { + message.mimetype = ''; + } + if (object.url !== undefined && object.url !== null) { + message.url = object.url; + } else { + message.url = ''; + } + if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { + message.thumbnailUrl = object.thumbnailUrl; + } else { + message.thumbnailUrl = ''; } return message; }, }; -const baseBeamReward_BeamRewardDetails: object = { name: '', amount: Long.ZERO, maxAmount: Long.ZERO, currency: '', status: '' }; +const baseBeamReviewer: object = { reviewerId: '', name: '', isAnonymous: false }; -export const BeamReward_BeamRewardDetails = { - encode(message: BeamReward_BeamRewardDetails, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.name !== '') { - writer.uint32(10).string(message.name); - } - if (!message.amount.isZero()) { - writer.uint32(16).int64(message.amount); - } - if (!message.maxAmount.isZero()) { - writer.uint32(24).int64(message.maxAmount); +export const BeamReviewer = { + encode(message: BeamReviewer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewerId !== '') { + writer.uint32(10).string(message.reviewerId); } - if (message.currency !== '') { - writer.uint32(34).string(message.currency); + if (message.name !== '') { + writer.uint32(18).string(message.name); } - if (message.status !== '') { - writer.uint32(42).string(message.status); + if (message.isAnonymous === true) { + writer.uint32(24).bool(message.isAnonymous); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward_BeamRewardDetails { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReviewer { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + const message = { ...baseBeamReviewer } as BeamReviewer; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.name = reader.string(); + message.reviewerId = reader.string(); break; case 2: - message.amount = reader.int64() as Long; + message.name = reader.string(); break; case 3: - message.maxAmount = reader.int64() as Long; - break; - case 4: - message.currency = reader.string(); - break; - case 5: - message.status = reader.string(); + message.isAnonymous = reader.bool(); break; default: reader.skipType(tag & 7); @@ -250,109 +298,86 @@ export const BeamReward_BeamRewardDetails = { return message; }, - fromJSON(object: any): BeamReward_BeamRewardDetails { - const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + fromJSON(object: any): BeamReviewer { + const message = { ...baseBeamReviewer } as BeamReviewer; + if (object.reviewerId !== undefined && object.reviewerId !== null) { + message.reviewerId = String(object.reviewerId); + } else { + message.reviewerId = ''; + } if (object.name !== undefined && object.name !== null) { message.name = String(object.name); } else { message.name = ''; } - if (object.amount !== undefined && object.amount !== null) { - message.amount = Long.fromString(object.amount); - } else { - message.amount = Long.ZERO; - } - if (object.maxAmount !== undefined && object.maxAmount !== null) { - message.maxAmount = Long.fromString(object.maxAmount); - } else { - message.maxAmount = Long.ZERO; - } - if (object.currency !== undefined && object.currency !== null) { - message.currency = String(object.currency); - } else { - message.currency = ''; - } - if (object.status !== undefined && object.status !== null) { - message.status = String(object.status); + if (object.isAnonymous !== undefined && object.isAnonymous !== null) { + message.isAnonymous = Boolean(object.isAnonymous); } else { - message.status = ''; + message.isAnonymous = false; } return message; }, - toJSON(message: BeamReward_BeamRewardDetails): unknown { + toJSON(message: BeamReviewer): unknown { const obj: any = {}; + message.reviewerId !== undefined && (obj.reviewerId = message.reviewerId); message.name !== undefined && (obj.name = message.name); - message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); - message.maxAmount !== undefined && (obj.maxAmount = (message.maxAmount || Long.ZERO).toString()); - message.currency !== undefined && (obj.currency = message.currency); - message.status !== undefined && (obj.status = message.status); + message.isAnonymous !== undefined && (obj.isAnonymous = message.isAnonymous); return obj; }, - fromPartial(object: DeepPartial): BeamReward_BeamRewardDetails { - const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + fromPartial(object: DeepPartial): BeamReviewer { + const message = { ...baseBeamReviewer } as BeamReviewer; + if (object.reviewerId !== undefined && object.reviewerId !== null) { + message.reviewerId = object.reviewerId; + } else { + message.reviewerId = ''; + } if (object.name !== undefined && object.name !== null) { message.name = object.name; } else { message.name = ''; } - if (object.amount !== undefined && object.amount !== null) { - message.amount = object.amount as Long; - } else { - message.amount = Long.ZERO; - } - if (object.maxAmount !== undefined && object.maxAmount !== null) { - message.maxAmount = object.maxAmount as Long; - } else { - message.maxAmount = Long.ZERO; - } - if (object.currency !== undefined && object.currency !== null) { - message.currency = object.currency; - } else { - message.currency = ''; - } - if (object.status !== undefined && object.status !== null) { - message.status = object.status; + if (object.isAnonymous !== undefined && object.isAnonymous !== null) { + message.isAnonymous = object.isAnonymous; } else { - message.status = ''; + message.isAnonymous = false; } return message; }, }; -const baseBeamReview: object = {}; +const baseBeamVerifier: object = { name: '', url: '', signature: '' }; -export const BeamReview = { - encode(message: BeamReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.reviewer !== undefined) { - BeamReview_BeamReviewReviewer.encode(message.reviewer, writer.uint32(10).fork()).ldelim(); +export const BeamVerifier = { + encode(message: BeamVerifier, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== '') { + writer.uint32(10).string(message.name); } - if (message.merchantReview !== undefined) { - BeamReview_BeamReviewMerchantReview.encode(message.merchantReview, writer.uint32(18).fork()).ldelim(); + if (message.url !== '') { + writer.uint32(18).string(message.url); } - for (const v of message.productsReviews) { - BeamReview_BeamReviewProductReview.encode(v!, writer.uint32(26).fork()).ldelim(); + if (message.signature !== '') { + writer.uint32(26).string(message.signature); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamVerifier { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview } as BeamReview; - message.productsReviews = []; + const message = { ...baseBeamVerifier } as BeamVerifier; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.reviewer = BeamReview_BeamReviewReviewer.decode(reader, reader.uint32()); + message.name = reader.string(); break; case 2: - message.merchantReview = BeamReview_BeamReviewMerchantReview.decode(reader, reader.uint32()); + message.url = reader.string(); break; case 3: - message.productsReviews.push(BeamReview_BeamReviewProductReview.decode(reader, reader.uint32())); + message.signature = reader.string(); break; default: reader.skipType(tag & 7); @@ -362,92 +387,105 @@ export const BeamReview = { return message; }, - fromJSON(object: any): BeamReview { - const message = { ...baseBeamReview } as BeamReview; - message.productsReviews = []; - if (object.reviewer !== undefined && object.reviewer !== null) { - message.reviewer = BeamReview_BeamReviewReviewer.fromJSON(object.reviewer); + fromJSON(object: any): BeamVerifier { + const message = { ...baseBeamVerifier } as BeamVerifier; + if (object.name !== undefined && object.name !== null) { + message.name = String(object.name); } else { - message.reviewer = undefined; + message.name = ''; } - if (object.merchantReview !== undefined && object.merchantReview !== null) { - message.merchantReview = BeamReview_BeamReviewMerchantReview.fromJSON(object.merchantReview); + if (object.url !== undefined && object.url !== null) { + message.url = String(object.url); } else { - message.merchantReview = undefined; + message.url = ''; } - if (object.productsReviews !== undefined && object.productsReviews !== null) { - for (const e of object.productsReviews) { - message.productsReviews.push(BeamReview_BeamReviewProductReview.fromJSON(e)); - } + if (object.signature !== undefined && object.signature !== null) { + message.signature = String(object.signature); + } else { + message.signature = ''; } return message; }, - toJSON(message: BeamReview): unknown { + toJSON(message: BeamVerifier): unknown { const obj: any = {}; - message.reviewer !== undefined && (obj.reviewer = message.reviewer ? BeamReview_BeamReviewReviewer.toJSON(message.reviewer) : undefined); - message.merchantReview !== undefined && (obj.merchantReview = message.merchantReview ? BeamReview_BeamReviewMerchantReview.toJSON(message.merchantReview) : undefined); - if (message.productsReviews) { - obj.productsReviews = message.productsReviews.map((e) => (e ? BeamReview_BeamReviewProductReview.toJSON(e) : undefined)); - } else { - obj.productsReviews = []; - } + message.name !== undefined && (obj.name = message.name); + message.url !== undefined && (obj.url = message.url); + message.signature !== undefined && (obj.signature = message.signature); return obj; }, - fromPartial(object: DeepPartial): BeamReview { - const message = { ...baseBeamReview } as BeamReview; - message.productsReviews = []; - if (object.reviewer !== undefined && object.reviewer !== null) { - message.reviewer = BeamReview_BeamReviewReviewer.fromPartial(object.reviewer); + fromPartial(object: DeepPartial): BeamVerifier { + const message = { ...baseBeamVerifier } as BeamVerifier; + if (object.name !== undefined && object.name !== null) { + message.name = object.name; } else { - message.reviewer = undefined; + message.name = ''; } - if (object.merchantReview !== undefined && object.merchantReview !== null) { - message.merchantReview = BeamReview_BeamReviewMerchantReview.fromPartial(object.merchantReview); + if (object.url !== undefined && object.url !== null) { + message.url = object.url; } else { - message.merchantReview = undefined; + message.url = ''; } - if (object.productsReviews !== undefined && object.productsReviews !== null) { - for (const e of object.productsReviews) { - message.productsReviews.push(BeamReview_BeamReviewProductReview.fromPartial(e)); - } + if (object.signature !== undefined && object.signature !== null) { + message.signature = object.signature; + } else { + message.signature = ''; } return message; }, }; -const baseBeamReview_BeamReviewReviewer: object = { reviewerId: '', name: '', isAnonymous: false }; +const baseBeamReward: object = { trigger: '', amount: 0, maxAmount: 0, currency: '', status: '' }; -export const BeamReview_BeamReviewReviewer = { - encode(message: BeamReview_BeamReviewReviewer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.reviewerId !== '') { - writer.uint32(10).string(message.reviewerId); +export const BeamReward = { + encode(message: BeamReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.trigger !== '') { + writer.uint32(10).string(message.trigger); } - if (message.name !== '') { - writer.uint32(18).string(message.name); + if (message.amount !== 0) { + writer.uint32(21).float(message.amount); } - if (message.isAnonymous === true) { - writer.uint32(24).bool(message.isAnonymous); + if (message.maxAmount !== 0) { + writer.uint32(29).float(message.maxAmount); + } + if (message.currency !== '') { + writer.uint32(34).string(message.currency); + } + if (message.status !== '') { + writer.uint32(42).string(message.status); + } + for (const v of message.details) { + BeamReward_BeamRewardDetails.encode(v!, writer.uint32(50).fork()).ldelim(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewReviewer { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; + const message = { ...baseBeamReward } as BeamReward; + message.details = []; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.reviewerId = reader.string(); + message.trigger = reader.string(); break; case 2: - message.name = reader.string(); + message.amount = reader.float(); break; case 3: - message.isAnonymous = reader.bool(); + message.maxAmount = reader.float(); + break; + case 4: + message.currency = reader.string(); + break; + case 5: + message.status = reader.string(); + break; + case 6: + message.details.push(BeamReward_BeamRewardDetails.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -457,124 +495,273 @@ export const BeamReview_BeamReviewReviewer = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewReviewer { - const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; - if (object.reviewerId !== undefined && object.reviewerId !== null) { - message.reviewerId = String(object.reviewerId); + fromJSON(object: any): BeamReward { + const message = { ...baseBeamReward } as BeamReward; + message.details = []; + if (object.trigger !== undefined && object.trigger !== null) { + message.trigger = String(object.trigger); } else { - message.reviewerId = ''; + message.trigger = ''; } - if (object.name !== undefined && object.name !== null) { - message.name = String(object.name); + if (object.amount !== undefined && object.amount !== null) { + message.amount = Number(object.amount); } else { - message.name = ''; + message.amount = 0; } - if (object.isAnonymous !== undefined && object.isAnonymous !== null) { - message.isAnonymous = Boolean(object.isAnonymous); + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = Number(object.maxAmount); } else { - message.isAnonymous = false; + message.maxAmount = 0; + } + if (object.currency !== undefined && object.currency !== null) { + message.currency = String(object.currency); + } else { + message.currency = ''; + } + if (object.status !== undefined && object.status !== null) { + message.status = String(object.status); + } else { + message.status = ''; + } + if (object.details !== undefined && object.details !== null) { + for (const e of object.details) { + message.details.push(BeamReward_BeamRewardDetails.fromJSON(e)); + } } return message; }, - toJSON(message: BeamReview_BeamReviewReviewer): unknown { + toJSON(message: BeamReward): unknown { const obj: any = {}; - message.reviewerId !== undefined && (obj.reviewerId = message.reviewerId); - message.name !== undefined && (obj.name = message.name); - message.isAnonymous !== undefined && (obj.isAnonymous = message.isAnonymous); + message.trigger !== undefined && (obj.trigger = message.trigger); + message.amount !== undefined && (obj.amount = message.amount); + message.maxAmount !== undefined && (obj.maxAmount = message.maxAmount); + message.currency !== undefined && (obj.currency = message.currency); + message.status !== undefined && (obj.status = message.status); + if (message.details) { + obj.details = message.details.map((e) => (e ? BeamReward_BeamRewardDetails.toJSON(e) : undefined)); + } else { + obj.details = []; + } return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewReviewer { - const message = { ...baseBeamReview_BeamReviewReviewer } as BeamReview_BeamReviewReviewer; - if (object.reviewerId !== undefined && object.reviewerId !== null) { - message.reviewerId = object.reviewerId; + fromPartial(object: DeepPartial): BeamReward { + const message = { ...baseBeamReward } as BeamReward; + message.details = []; + if (object.trigger !== undefined && object.trigger !== null) { + message.trigger = object.trigger; } else { - message.reviewerId = ''; + message.trigger = ''; } - if (object.name !== undefined && object.name !== null) { - message.name = object.name; + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount; } else { - message.name = ''; + message.amount = 0; } - if (object.isAnonymous !== undefined && object.isAnonymous !== null) { - message.isAnonymous = object.isAnonymous; + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = object.maxAmount; } else { - message.isAnonymous = false; + message.maxAmount = 0; + } + if (object.currency !== undefined && object.currency !== null) { + message.currency = object.currency; + } else { + message.currency = ''; + } + if (object.status !== undefined && object.status !== null) { + message.status = object.status; + } else { + message.status = ''; + } + if (object.details !== undefined && object.details !== null) { + for (const e of object.details) { + message.details.push(BeamReward_BeamRewardDetails.fromPartial(e)); + } + } + return message; + }, +}; + +const baseBeamReward_BeamRewardDetails: object = { type: '', amount: 0, maxAmount: 0, status: '' }; + +export const BeamReward_BeamRewardDetails = { + encode(message: BeamReward_BeamRewardDetails, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== '') { + writer.uint32(10).string(message.type); + } + if (message.amount !== 0) { + writer.uint32(21).float(message.amount); + } + if (message.maxAmount !== 0) { + writer.uint32(29).float(message.maxAmount); + } + if (message.status !== '') { + writer.uint32(34).string(message.status); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamReward_BeamRewardDetails { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.type = reader.string(); + break; + case 2: + message.amount = reader.float(); + break; + case 3: + message.maxAmount = reader.float(); + break; + case 4: + message.status = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamReward_BeamRewardDetails { + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + if (object.type !== undefined && object.type !== null) { + message.type = String(object.type); + } else { + message.type = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Number(object.amount); + } else { + message.amount = 0; + } + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = Number(object.maxAmount); + } else { + message.maxAmount = 0; + } + if (object.status !== undefined && object.status !== null) { + message.status = String(object.status); + } else { + message.status = ''; + } + return message; + }, + + toJSON(message: BeamReward_BeamRewardDetails): unknown { + const obj: any = {}; + message.type !== undefined && (obj.type = message.type); + message.amount !== undefined && (obj.amount = message.amount); + message.maxAmount !== undefined && (obj.maxAmount = message.maxAmount); + message.status !== undefined && (obj.status = message.status); + return obj; + }, + + fromPartial(object: DeepPartial): BeamReward_BeamRewardDetails { + const message = { ...baseBeamReward_BeamRewardDetails } as BeamReward_BeamRewardDetails; + if (object.type !== undefined && object.type !== null) { + message.type = object.type; + } else { + message.type = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount; + } else { + message.amount = 0; + } + if (object.maxAmount !== undefined && object.maxAmount !== null) { + message.maxAmount = object.maxAmount; + } else { + message.maxAmount = 0; + } + if (object.status !== undefined && object.status !== null) { + message.status = object.status; + } else { + message.status = ''; } return message; }, }; -const baseBeamReview_BeamReviewMerchantReview: object = { reviewId: '', merchantUrl: '', ratingUrl: '', reviewUrl: '', timestamp: '', title: '' }; +const baseBeamMerchantReview: object = { orderId: '', reviewId: '', merchantUrl: '', ratingUrl: '', reviewUrl: '', collectionMethod: '', timestamp: '', title: '' }; -export const BeamReview_BeamReviewMerchantReview = { - encode(message: BeamReview_BeamReviewMerchantReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const BeamMerchantReview = { + encode(message: BeamMerchantReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.orderId !== '') { + writer.uint32(10).string(message.orderId); + } if (message.reviewId !== '') { - writer.uint32(10).string(message.reviewId); + writer.uint32(18).string(message.reviewId); } if (message.merchantUrl !== '') { - writer.uint32(18).string(message.merchantUrl); + writer.uint32(26).string(message.merchantUrl); } if (message.ratingUrl !== '') { - writer.uint32(26).string(message.ratingUrl); + writer.uint32(34).string(message.ratingUrl); } if (message.reviewUrl !== '') { - writer.uint32(34).string(message.reviewUrl); + writer.uint32(42).string(message.reviewUrl); + } + if (message.collectionMethod !== '') { + writer.uint32(50).string(message.collectionMethod); } if (message.timestamp !== '') { - writer.uint32(42).string(message.timestamp); + writer.uint32(58).string(message.timestamp); + } + if (message.ratings !== undefined) { + BeamMerchantReview_BeamMerchantReviewRating.encode(message.ratings, writer.uint32(66).fork()).ldelim(); } - Object.entries(message.ratings).forEach(([key, value]) => { - BeamReview_BeamReviewMerchantReview_RatingsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).ldelim(); - }); if (message.title !== '') { - writer.uint32(58).string(message.title); + writer.uint32(74).string(message.title); + } + if (message.content !== undefined) { + BeamMerchantReview_BeamMerchantReviewContent.encode(message.content, writer.uint32(82).fork()).ldelim(); } - Object.entries(message.content).forEach(([key, value]) => { - BeamReview_BeamReviewMerchantReview_ContentEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).ldelim(); - }); return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamMerchantReview { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; - message.ratings = {}; - message.content = {}; + const message = { ...baseBeamMerchantReview } as BeamMerchantReview; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.reviewId = reader.string(); + message.orderId = reader.string(); break; case 2: - message.merchantUrl = reader.string(); + message.reviewId = reader.string(); break; case 3: - message.ratingUrl = reader.string(); + message.merchantUrl = reader.string(); break; case 4: - message.reviewUrl = reader.string(); + message.ratingUrl = reader.string(); break; case 5: - message.timestamp = reader.string(); + message.reviewUrl = reader.string(); break; case 6: - const entry6 = BeamReview_BeamReviewMerchantReview_RatingsEntry.decode(reader, reader.uint32()); - if (entry6.value !== undefined) { - message.ratings[entry6.key] = entry6.value; - } + message.collectionMethod = reader.string(); break; case 7: - message.title = reader.string(); + message.timestamp = reader.string(); break; case 8: - const entry8 = BeamReview_BeamReviewMerchantReview_ContentEntry.decode(reader, reader.uint32()); - if (entry8.value !== undefined) { - message.content[entry8.key] = entry8.value; - } + message.ratings = BeamMerchantReview_BeamMerchantReviewRating.decode(reader, reader.uint32()); + break; + case 9: + message.title = reader.string(); + break; + case 10: + message.content = BeamMerchantReview_BeamMerchantReviewContent.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -584,10 +771,13 @@ export const BeamReview_BeamReviewMerchantReview = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewMerchantReview { - const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; - message.ratings = {}; - message.content = {}; + fromJSON(object: any): BeamMerchantReview { + const message = { ...baseBeamMerchantReview } as BeamMerchantReview; + if (object.orderId !== undefined && object.orderId !== null) { + message.orderId = String(object.orderId); + } else { + message.orderId = ''; + } if (object.reviewId !== undefined && object.reviewId !== null) { message.reviewId = String(object.reviewId); } else { @@ -608,15 +798,20 @@ export const BeamReview_BeamReviewMerchantReview = { } else { message.reviewUrl = ''; } + if (object.collectionMethod !== undefined && object.collectionMethod !== null) { + message.collectionMethod = String(object.collectionMethod); + } else { + message.collectionMethod = ''; + } if (object.timestamp !== undefined && object.timestamp !== null) { message.timestamp = String(object.timestamp); } else { message.timestamp = ''; } if (object.ratings !== undefined && object.ratings !== null) { - Object.entries(object.ratings).forEach(([key, value]) => { - message.ratings[key] = new Long(value as any); - }); + message.ratings = BeamMerchantReview_BeamMerchantReviewRating.fromJSON(object.ratings); + } else { + message.ratings = undefined; } if (object.title !== undefined && object.title !== null) { message.title = String(object.title); @@ -624,40 +819,35 @@ export const BeamReview_BeamReviewMerchantReview = { message.title = ''; } if (object.content !== undefined && object.content !== null) { - Object.entries(object.content).forEach(([key, value]) => { - message.content[key] = String(value); - }); + message.content = BeamMerchantReview_BeamMerchantReviewContent.fromJSON(object.content); + } else { + message.content = undefined; } return message; }, - toJSON(message: BeamReview_BeamReviewMerchantReview): unknown { + toJSON(message: BeamMerchantReview): unknown { const obj: any = {}; + message.orderId !== undefined && (obj.orderId = message.orderId); message.reviewId !== undefined && (obj.reviewId = message.reviewId); message.merchantUrl !== undefined && (obj.merchantUrl = message.merchantUrl); message.ratingUrl !== undefined && (obj.ratingUrl = message.ratingUrl); message.reviewUrl !== undefined && (obj.reviewUrl = message.reviewUrl); + message.collectionMethod !== undefined && (obj.collectionMethod = message.collectionMethod); message.timestamp !== undefined && (obj.timestamp = message.timestamp); - obj.ratings = {}; - if (message.ratings) { - Object.entries(message.ratings).forEach(([k, v]) => { - obj.ratings[k] = v; - }); - } + message.ratings !== undefined && (obj.ratings = message.ratings ? BeamMerchantReview_BeamMerchantReviewRating.toJSON(message.ratings) : undefined); message.title !== undefined && (obj.title = message.title); - obj.content = {}; - if (message.content) { - Object.entries(message.content).forEach(([k, v]) => { - obj.content[k] = v; - }); - } + message.content !== undefined && (obj.content = message.content ? BeamMerchantReview_BeamMerchantReviewContent.toJSON(message.content) : undefined); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview { - const message = { ...baseBeamReview_BeamReviewMerchantReview } as BeamReview_BeamReviewMerchantReview; - message.ratings = {}; - message.content = {}; + fromPartial(object: DeepPartial): BeamMerchantReview { + const message = { ...baseBeamMerchantReview } as BeamMerchantReview; + if (object.orderId !== undefined && object.orderId !== null) { + message.orderId = object.orderId; + } else { + message.orderId = ''; + } if (object.reviewId !== undefined && object.reviewId !== null) { message.reviewId = object.reviewId; } else { @@ -678,17 +868,20 @@ export const BeamReview_BeamReviewMerchantReview = { } else { message.reviewUrl = ''; } + if (object.collectionMethod !== undefined && object.collectionMethod !== null) { + message.collectionMethod = object.collectionMethod; + } else { + message.collectionMethod = ''; + } if (object.timestamp !== undefined && object.timestamp !== null) { message.timestamp = object.timestamp; } else { message.timestamp = ''; } if (object.ratings !== undefined && object.ratings !== null) { - Object.entries(object.ratings).forEach(([key, value]) => { - if (value !== undefined) { - message.ratings[key] = new Long(value as any); - } - }); + message.ratings = BeamMerchantReview_BeamMerchantReviewRating.fromPartial(object.ratings); + } else { + message.ratings = undefined; } if (object.title !== undefined && object.title !== null) { message.title = object.title; @@ -696,41 +889,45 @@ export const BeamReview_BeamReviewMerchantReview = { message.title = ''; } if (object.content !== undefined && object.content !== null) { - Object.entries(object.content).forEach(([key, value]) => { - if (value !== undefined) { - message.content[key] = String(value); - } - }); + message.content = BeamMerchantReview_BeamMerchantReviewContent.fromPartial(object.content); + } else { + message.content = undefined; } return message; }, }; -const baseBeamReview_BeamReviewMerchantReview_RatingsEntry: object = { key: '', value: Long.ZERO }; +const baseBeamMerchantReview_BeamMerchantReviewRating: object = { overall: 0, customerService: 0, nps: 0 }; -export const BeamReview_BeamReviewMerchantReview_RatingsEntry = { - encode(message: BeamReview_BeamReviewMerchantReview_RatingsEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== '') { - writer.uint32(10).string(message.key); +export const BeamMerchantReview_BeamMerchantReviewRating = { + encode(message: BeamMerchantReview_BeamMerchantReviewRating, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.overall !== 0) { + writer.uint32(13).float(message.overall); + } + if (message.customerService !== 0) { + writer.uint32(21).float(message.customerService); } - if (!message.value.isZero()) { - writer.uint32(16).int64(message.value); + if (message.nps !== 0) { + writer.uint32(29).float(message.nps); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview_RatingsEntry { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamMerchantReview_BeamMerchantReviewRating { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; + const message = { ...baseBeamMerchantReview_BeamMerchantReviewRating } as BeamMerchantReview_BeamMerchantReviewRating; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.overall = reader.float(); break; case 2: - message.value = reader.int64() as Long; + message.customerService = reader.float(); + break; + case 3: + message.nps = reader.float(); break; default: reader.skipType(tag & 7); @@ -740,69 +937,80 @@ export const BeamReview_BeamReviewMerchantReview_RatingsEntry = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewMerchantReview_RatingsEntry { - const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; - if (object.key !== undefined && object.key !== null) { - message.key = String(object.key); + fromJSON(object: any): BeamMerchantReview_BeamMerchantReviewRating { + const message = { ...baseBeamMerchantReview_BeamMerchantReviewRating } as BeamMerchantReview_BeamMerchantReviewRating; + if (object.overall !== undefined && object.overall !== null) { + message.overall = Number(object.overall); + } else { + message.overall = 0; + } + if (object.customerService !== undefined && object.customerService !== null) { + message.customerService = Number(object.customerService); } else { - message.key = ''; + message.customerService = 0; } - if (object.value !== undefined && object.value !== null) { - message.value = Long.fromString(object.value); + if (object.nps !== undefined && object.nps !== null) { + message.nps = Number(object.nps); } else { - message.value = Long.ZERO; + message.nps = 0; } return message; }, - toJSON(message: BeamReview_BeamReviewMerchantReview_RatingsEntry): unknown { + toJSON(message: BeamMerchantReview_BeamMerchantReviewRating): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + message.overall !== undefined && (obj.overall = message.overall); + message.customerService !== undefined && (obj.customerService = message.customerService); + message.nps !== undefined && (obj.nps = message.nps); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview_RatingsEntry { - const message = { ...baseBeamReview_BeamReviewMerchantReview_RatingsEntry } as BeamReview_BeamReviewMerchantReview_RatingsEntry; - if (object.key !== undefined && object.key !== null) { - message.key = object.key; + fromPartial(object: DeepPartial): BeamMerchantReview_BeamMerchantReviewRating { + const message = { ...baseBeamMerchantReview_BeamMerchantReviewRating } as BeamMerchantReview_BeamMerchantReviewRating; + if (object.overall !== undefined && object.overall !== null) { + message.overall = object.overall; } else { - message.key = ''; + message.overall = 0; } - if (object.value !== undefined && object.value !== null) { - message.value = object.value as Long; + if (object.customerService !== undefined && object.customerService !== null) { + message.customerService = object.customerService; } else { - message.value = Long.ZERO; + message.customerService = 0; + } + if (object.nps !== undefined && object.nps !== null) { + message.nps = object.nps; + } else { + message.nps = 0; } return message; }, }; -const baseBeamReview_BeamReviewMerchantReview_ContentEntry: object = { key: '', value: '' }; +const baseBeamMerchantReview_BeamMerchantReviewContent: object = { overall: '', customerService: '' }; -export const BeamReview_BeamReviewMerchantReview_ContentEntry = { - encode(message: BeamReview_BeamReviewMerchantReview_ContentEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== '') { - writer.uint32(10).string(message.key); +export const BeamMerchantReview_BeamMerchantReviewContent = { + encode(message: BeamMerchantReview_BeamMerchantReviewContent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.overall !== '') { + writer.uint32(10).string(message.overall); } - if (message.value !== '') { - writer.uint32(18).string(message.value); + if (message.customerService !== '') { + writer.uint32(18).string(message.customerService); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewMerchantReview_ContentEntry { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamMerchantReview_BeamMerchantReviewContent { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; + const message = { ...baseBeamMerchantReview_BeamMerchantReviewContent } as BeamMerchantReview_BeamMerchantReviewContent; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.overall = reader.string(); break; case 2: - message.value = reader.string(); + message.customerService = reader.string(); break; default: reader.skipType(tag & 7); @@ -812,127 +1020,125 @@ export const BeamReview_BeamReviewMerchantReview_ContentEntry = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewMerchantReview_ContentEntry { - const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; - if (object.key !== undefined && object.key !== null) { - message.key = String(object.key); + fromJSON(object: any): BeamMerchantReview_BeamMerchantReviewContent { + const message = { ...baseBeamMerchantReview_BeamMerchantReviewContent } as BeamMerchantReview_BeamMerchantReviewContent; + if (object.overall !== undefined && object.overall !== null) { + message.overall = String(object.overall); } else { - message.key = ''; + message.overall = ''; } - if (object.value !== undefined && object.value !== null) { - message.value = String(object.value); + if (object.customerService !== undefined && object.customerService !== null) { + message.customerService = String(object.customerService); } else { - message.value = ''; + message.customerService = ''; } return message; }, - toJSON(message: BeamReview_BeamReviewMerchantReview_ContentEntry): unknown { + toJSON(message: BeamMerchantReview_BeamMerchantReviewContent): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + message.overall !== undefined && (obj.overall = message.overall); + message.customerService !== undefined && (obj.customerService = message.customerService); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewMerchantReview_ContentEntry { - const message = { ...baseBeamReview_BeamReviewMerchantReview_ContentEntry } as BeamReview_BeamReviewMerchantReview_ContentEntry; - if (object.key !== undefined && object.key !== null) { - message.key = object.key; + fromPartial(object: DeepPartial): BeamMerchantReview_BeamMerchantReviewContent { + const message = { ...baseBeamMerchantReview_BeamMerchantReviewContent } as BeamMerchantReview_BeamMerchantReviewContent; + if (object.overall !== undefined && object.overall !== null) { + message.overall = object.overall; } else { - message.key = ''; + message.overall = ''; } - if (object.value !== undefined && object.value !== null) { - message.value = object.value; + if (object.customerService !== undefined && object.customerService !== null) { + message.customerService = object.customerService; } else { - message.value = ''; + message.customerService = ''; } return message; }, }; -const baseBeamReview_BeamReviewProductReview: object = { reviewId: '', ratingUrl: '', reviewUrl: '', collectionMethod: '', timestamp: '', title: '' }; +const baseBeamProductReview: object = { orderId: '', reviewId: '', ratingUrl: '', reviewUrl: '', collectionMethod: '', timestamp: '', title: '' }; -export const BeamReview_BeamReviewProductReview = { - encode(message: BeamReview_BeamReviewProductReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const BeamProductReview = { + encode(message: BeamProductReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.orderId !== '') { + writer.uint32(10).string(message.orderId); + } if (message.reviewId !== '') { - writer.uint32(10).string(message.reviewId); + writer.uint32(18).string(message.reviewId); } if (message.ratingUrl !== '') { - writer.uint32(18).string(message.ratingUrl); + writer.uint32(26).string(message.ratingUrl); } if (message.reviewUrl !== '') { - writer.uint32(26).string(message.reviewUrl); + writer.uint32(34).string(message.reviewUrl); } if (message.collectionMethod !== '') { - writer.uint32(34).string(message.collectionMethod); + writer.uint32(42).string(message.collectionMethod); } if (message.timestamp !== '') { - writer.uint32(42).string(message.timestamp); + writer.uint32(50).string(message.timestamp); + } + if (message.ratings !== undefined) { + BeamProductReview_BeamProductReviewRating.encode(message.ratings, writer.uint32(58).fork()).ldelim(); } - Object.entries(message.ratings).forEach(([key, value]) => { - BeamReview_BeamReviewProductReview_RatingsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).ldelim(); - }); if (message.title !== '') { - writer.uint32(58).string(message.title); + writer.uint32(66).string(message.title); + } + if (message.content !== undefined) { + BeamProductReview_BeamProductReviewContent.encode(message.content, writer.uint32(74).fork()).ldelim(); } - Object.entries(message.content).forEach(([key, value]) => { - BeamReview_BeamReviewProductReview_ContentEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).ldelim(); - }); for (const v of message.medias) { - BeamReview_BeamReviewProductReview_Media.encode(v!, writer.uint32(74).fork()).ldelim(); + BeamMedia.encode(v!, writer.uint32(82).fork()).ldelim(); } for (const v of message.products) { - BeamReview_BeamReviewProductReview_Product.encode(v!, writer.uint32(82).fork()).ldelim(); + BeamProductReview_BeamProduct.encode(v!, writer.uint32(90).fork()).ldelim(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamProductReview { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; - message.ratings = {}; - message.content = {}; + const message = { ...baseBeamProductReview } as BeamProductReview; message.medias = []; message.products = []; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.reviewId = reader.string(); + message.orderId = reader.string(); break; case 2: - message.ratingUrl = reader.string(); + message.reviewId = reader.string(); break; case 3: - message.reviewUrl = reader.string(); + message.ratingUrl = reader.string(); break; case 4: - message.collectionMethod = reader.string(); + message.reviewUrl = reader.string(); break; case 5: - message.timestamp = reader.string(); + message.collectionMethod = reader.string(); break; case 6: - const entry6 = BeamReview_BeamReviewProductReview_RatingsEntry.decode(reader, reader.uint32()); - if (entry6.value !== undefined) { - message.ratings[entry6.key] = entry6.value; - } + message.timestamp = reader.string(); break; case 7: - message.title = reader.string(); + message.ratings = BeamProductReview_BeamProductReviewRating.decode(reader, reader.uint32()); break; case 8: - const entry8 = BeamReview_BeamReviewProductReview_ContentEntry.decode(reader, reader.uint32()); - if (entry8.value !== undefined) { - message.content[entry8.key] = entry8.value; - } + message.title = reader.string(); break; case 9: - message.medias.push(BeamReview_BeamReviewProductReview_Media.decode(reader, reader.uint32())); + message.content = BeamProductReview_BeamProductReviewContent.decode(reader, reader.uint32()); break; case 10: - message.products.push(BeamReview_BeamReviewProductReview_Product.decode(reader, reader.uint32())); + message.medias.push(BeamMedia.decode(reader, reader.uint32())); + break; + case 11: + message.products.push(BeamProductReview_BeamProduct.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -942,12 +1148,15 @@ export const BeamReview_BeamReviewProductReview = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview { - const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; - message.ratings = {}; - message.content = {}; + fromJSON(object: any): BeamProductReview { + const message = { ...baseBeamProductReview } as BeamProductReview; message.medias = []; message.products = []; + if (object.orderId !== undefined && object.orderId !== null) { + message.orderId = String(object.orderId); + } else { + message.orderId = ''; + } if (object.reviewId !== undefined && object.reviewId !== null) { message.reviewId = String(object.reviewId); } else { @@ -974,9 +1183,9 @@ export const BeamReview_BeamReviewProductReview = { message.timestamp = ''; } if (object.ratings !== undefined && object.ratings !== null) { - Object.entries(object.ratings).forEach(([key, value]) => { - message.ratings[key] = new Long(value as any); - }); + message.ratings = BeamProductReview_BeamProductReviewRating.fromJSON(object.ratings); + } else { + message.ratings = undefined; } if (object.title !== undefined && object.title !== null) { message.title = String(object.title); @@ -984,62 +1193,56 @@ export const BeamReview_BeamReviewProductReview = { message.title = ''; } if (object.content !== undefined && object.content !== null) { - Object.entries(object.content).forEach(([key, value]) => { - message.content[key] = String(value); - }); + message.content = BeamProductReview_BeamProductReviewContent.fromJSON(object.content); + } else { + message.content = undefined; } if (object.medias !== undefined && object.medias !== null) { for (const e of object.medias) { - message.medias.push(BeamReview_BeamReviewProductReview_Media.fromJSON(e)); + message.medias.push(BeamMedia.fromJSON(e)); } } if (object.products !== undefined && object.products !== null) { for (const e of object.products) { - message.products.push(BeamReview_BeamReviewProductReview_Product.fromJSON(e)); + message.products.push(BeamProductReview_BeamProduct.fromJSON(e)); } } return message; }, - toJSON(message: BeamReview_BeamReviewProductReview): unknown { + toJSON(message: BeamProductReview): unknown { const obj: any = {}; + message.orderId !== undefined && (obj.orderId = message.orderId); message.reviewId !== undefined && (obj.reviewId = message.reviewId); message.ratingUrl !== undefined && (obj.ratingUrl = message.ratingUrl); message.reviewUrl !== undefined && (obj.reviewUrl = message.reviewUrl); message.collectionMethod !== undefined && (obj.collectionMethod = message.collectionMethod); message.timestamp !== undefined && (obj.timestamp = message.timestamp); - obj.ratings = {}; - if (message.ratings) { - Object.entries(message.ratings).forEach(([k, v]) => { - obj.ratings[k] = v; - }); - } + message.ratings !== undefined && (obj.ratings = message.ratings ? BeamProductReview_BeamProductReviewRating.toJSON(message.ratings) : undefined); message.title !== undefined && (obj.title = message.title); - obj.content = {}; - if (message.content) { - Object.entries(message.content).forEach(([k, v]) => { - obj.content[k] = v; - }); - } + message.content !== undefined && (obj.content = message.content ? BeamProductReview_BeamProductReviewContent.toJSON(message.content) : undefined); if (message.medias) { - obj.medias = message.medias.map((e) => (e ? BeamReview_BeamReviewProductReview_Media.toJSON(e) : undefined)); + obj.medias = message.medias.map((e) => (e ? BeamMedia.toJSON(e) : undefined)); } else { obj.medias = []; } if (message.products) { - obj.products = message.products.map((e) => (e ? BeamReview_BeamReviewProductReview_Product.toJSON(e) : undefined)); + obj.products = message.products.map((e) => (e ? BeamProductReview_BeamProduct.toJSON(e) : undefined)); } else { obj.products = []; } return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview { - const message = { ...baseBeamReview_BeamReviewProductReview } as BeamReview_BeamReviewProductReview; - message.ratings = {}; - message.content = {}; + fromPartial(object: DeepPartial): BeamProductReview { + const message = { ...baseBeamProductReview } as BeamProductReview; message.medias = []; message.products = []; + if (object.orderId !== undefined && object.orderId !== null) { + message.orderId = object.orderId; + } else { + message.orderId = ''; + } if (object.reviewId !== undefined && object.reviewId !== null) { message.reviewId = object.reviewId; } else { @@ -1066,11 +1269,9 @@ export const BeamReview_BeamReviewProductReview = { message.timestamp = ''; } if (object.ratings !== undefined && object.ratings !== null) { - Object.entries(object.ratings).forEach(([key, value]) => { - if (value !== undefined) { - message.ratings[key] = new Long(value as any); - } - }); + message.ratings = BeamProductReview_BeamProductReviewRating.fromPartial(object.ratings); + } else { + message.ratings = undefined; } if (object.title !== undefined && object.title !== null) { message.title = object.title; @@ -1078,57 +1279,49 @@ export const BeamReview_BeamReviewProductReview = { message.title = ''; } if (object.content !== undefined && object.content !== null) { - Object.entries(object.content).forEach(([key, value]) => { - if (value !== undefined) { - message.content[key] = String(value); - } - }); + message.content = BeamProductReview_BeamProductReviewContent.fromPartial(object.content); + } else { + message.content = undefined; } if (object.medias !== undefined && object.medias !== null) { for (const e of object.medias) { - message.medias.push(BeamReview_BeamReviewProductReview_Media.fromPartial(e)); + message.medias.push(BeamMedia.fromPartial(e)); } } if (object.products !== undefined && object.products !== null) { for (const e of object.products) { - message.products.push(BeamReview_BeamReviewProductReview_Product.fromPartial(e)); + message.products.push(BeamProductReview_BeamProduct.fromPartial(e)); } } return message; }, }; -const baseBeamReview_BeamReviewProductReview_Media: object = { mimetype: '', url: '', thumbnailUrl: '' }; +const baseBeamProductReview_BeamProductReviewRating: object = { overall: 0, quality: 0 }; -export const BeamReview_BeamReviewProductReview_Media = { - encode(message: BeamReview_BeamReviewProductReview_Media, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.mimetype !== '') { - writer.uint32(10).string(message.mimetype); +export const BeamProductReview_BeamProductReviewRating = { + encode(message: BeamProductReview_BeamProductReviewRating, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.overall !== 0) { + writer.uint32(13).float(message.overall); } - if (message.url !== '') { - writer.uint32(18).string(message.url); - } - if (message.thumbnailUrl !== '') { - writer.uint32(26).string(message.thumbnailUrl); + if (message.quality !== 0) { + writer.uint32(21).float(message.quality); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Media { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamProductReview_BeamProductReviewRating { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; + const message = { ...baseBeamProductReview_BeamProductReviewRating } as BeamProductReview_BeamProductReviewRating; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.mimetype = reader.string(); + message.overall = reader.float(); break; case 2: - message.url = reader.string(); - break; - case 3: - message.thumbnailUrl = reader.string(); + message.quality = reader.float(); break; default: reader.skipType(tag & 7); @@ -1138,79 +1331,157 @@ export const BeamReview_BeamReviewProductReview_Media = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview_Media { - const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; - if (object.mimetype !== undefined && object.mimetype !== null) { - message.mimetype = String(object.mimetype); + fromJSON(object: any): BeamProductReview_BeamProductReviewRating { + const message = { ...baseBeamProductReview_BeamProductReviewRating } as BeamProductReview_BeamProductReviewRating; + if (object.overall !== undefined && object.overall !== null) { + message.overall = Number(object.overall); } else { - message.mimetype = ''; + message.overall = 0; } - if (object.url !== undefined && object.url !== null) { - message.url = String(object.url); + if (object.quality !== undefined && object.quality !== null) { + message.quality = Number(object.quality); } else { - message.url = ''; + message.quality = 0; } - if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { - message.thumbnailUrl = String(object.thumbnailUrl); + return message; + }, + + toJSON(message: BeamProductReview_BeamProductReviewRating): unknown { + const obj: any = {}; + message.overall !== undefined && (obj.overall = message.overall); + message.quality !== undefined && (obj.quality = message.quality); + return obj; + }, + + fromPartial(object: DeepPartial): BeamProductReview_BeamProductReviewRating { + const message = { ...baseBeamProductReview_BeamProductReviewRating } as BeamProductReview_BeamProductReviewRating; + if (object.overall !== undefined && object.overall !== null) { + message.overall = object.overall; } else { - message.thumbnailUrl = ''; + message.overall = 0; + } + if (object.quality !== undefined && object.quality !== null) { + message.quality = object.quality; + } else { + message.quality = 0; + } + return message; + }, +}; + +const baseBeamProductReview_BeamProductReviewContent: object = { overall: '', pros: '', cons: '' }; + +export const BeamProductReview_BeamProductReviewContent = { + encode(message: BeamProductReview_BeamProductReviewContent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.overall !== '') { + writer.uint32(10).string(message.overall); + } + if (message.pros !== '') { + writer.uint32(18).string(message.pros); + } + if (message.cons !== '') { + writer.uint32(26).string(message.cons); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BeamProductReview_BeamProductReviewContent { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseBeamProductReview_BeamProductReviewContent } as BeamProductReview_BeamProductReviewContent; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.overall = reader.string(); + break; + case 2: + message.pros = reader.string(); + break; + case 3: + message.cons = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BeamProductReview_BeamProductReviewContent { + const message = { ...baseBeamProductReview_BeamProductReviewContent } as BeamProductReview_BeamProductReviewContent; + if (object.overall !== undefined && object.overall !== null) { + message.overall = String(object.overall); + } else { + message.overall = ''; + } + if (object.pros !== undefined && object.pros !== null) { + message.pros = String(object.pros); + } else { + message.pros = ''; + } + if (object.cons !== undefined && object.cons !== null) { + message.cons = String(object.cons); + } else { + message.cons = ''; } return message; }, - toJSON(message: BeamReview_BeamReviewProductReview_Media): unknown { + toJSON(message: BeamProductReview_BeamProductReviewContent): unknown { const obj: any = {}; - message.mimetype !== undefined && (obj.mimetype = message.mimetype); - message.url !== undefined && (obj.url = message.url); - message.thumbnailUrl !== undefined && (obj.thumbnailUrl = message.thumbnailUrl); + message.overall !== undefined && (obj.overall = message.overall); + message.pros !== undefined && (obj.pros = message.pros); + message.cons !== undefined && (obj.cons = message.cons); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Media { - const message = { ...baseBeamReview_BeamReviewProductReview_Media } as BeamReview_BeamReviewProductReview_Media; - if (object.mimetype !== undefined && object.mimetype !== null) { - message.mimetype = object.mimetype; + fromPartial(object: DeepPartial): BeamProductReview_BeamProductReviewContent { + const message = { ...baseBeamProductReview_BeamProductReviewContent } as BeamProductReview_BeamProductReviewContent; + if (object.overall !== undefined && object.overall !== null) { + message.overall = object.overall; } else { - message.mimetype = ''; + message.overall = ''; } - if (object.url !== undefined && object.url !== null) { - message.url = object.url; + if (object.pros !== undefined && object.pros !== null) { + message.pros = object.pros; } else { - message.url = ''; + message.pros = ''; } - if (object.thumbnailUrl !== undefined && object.thumbnailUrl !== null) { - message.thumbnailUrl = object.thumbnailUrl; + if (object.cons !== undefined && object.cons !== null) { + message.cons = object.cons; } else { - message.thumbnailUrl = ''; + message.cons = ''; } return message; }, }; -const baseBeamReview_BeamReviewProductReview_Product: object = { name: '', url: '', brands: '' }; +const baseBeamProductReview_BeamProduct: object = { name: '', url: '', urls: '' }; -export const BeamReview_BeamReviewProductReview_Product = { - encode(message: BeamReview_BeamReviewProductReview_Product, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const BeamProductReview_BeamProduct = { + encode(message: BeamProductReview_BeamProduct, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== '') { writer.uint32(10).string(message.name); } if (message.url !== '') { writer.uint32(18).string(message.url); } - for (const v of message.brands) { + for (const v of message.urls) { writer.uint32(26).string(v!); } if (message.ids !== undefined) { - BeamReview_BeamReviewProductReview_Product_ProductIds.encode(message.ids, writer.uint32(34).fork()).ldelim(); + BeamProductReview_BeamProduct_BeamProductIds.encode(message.ids, writer.uint32(34).fork()).ldelim(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Product { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamProductReview_BeamProduct { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; - message.brands = []; + const message = { ...baseBeamProductReview_BeamProduct } as BeamProductReview_BeamProduct; + message.urls = []; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { @@ -1221,10 +1492,10 @@ export const BeamReview_BeamReviewProductReview_Product = { message.url = reader.string(); break; case 3: - message.brands.push(reader.string()); + message.urls.push(reader.string()); break; case 4: - message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.decode(reader, reader.uint32()); + message.ids = BeamProductReview_BeamProduct_BeamProductIds.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1234,9 +1505,9 @@ export const BeamReview_BeamReviewProductReview_Product = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview_Product { - const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; - message.brands = []; + fromJSON(object: any): BeamProductReview_BeamProduct { + const message = { ...baseBeamProductReview_BeamProduct } as BeamProductReview_BeamProduct; + message.urls = []; if (object.name !== undefined && object.name !== null) { message.name = String(object.name); } else { @@ -1247,35 +1518,35 @@ export const BeamReview_BeamReviewProductReview_Product = { } else { message.url = ''; } - if (object.brands !== undefined && object.brands !== null) { - for (const e of object.brands) { - message.brands.push(String(e)); + if (object.urls !== undefined && object.urls !== null) { + for (const e of object.urls) { + message.urls.push(String(e)); } } if (object.ids !== undefined && object.ids !== null) { - message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.fromJSON(object.ids); + message.ids = BeamProductReview_BeamProduct_BeamProductIds.fromJSON(object.ids); } else { message.ids = undefined; } return message; }, - toJSON(message: BeamReview_BeamReviewProductReview_Product): unknown { + toJSON(message: BeamProductReview_BeamProduct): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.url !== undefined && (obj.url = message.url); - if (message.brands) { - obj.brands = message.brands.map((e) => e); + if (message.urls) { + obj.urls = message.urls.map((e) => e); } else { - obj.brands = []; + obj.urls = []; } - message.ids !== undefined && (obj.ids = message.ids ? BeamReview_BeamReviewProductReview_Product_ProductIds.toJSON(message.ids) : undefined); + message.ids !== undefined && (obj.ids = message.ids ? BeamProductReview_BeamProduct_BeamProductIds.toJSON(message.ids) : undefined); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Product { - const message = { ...baseBeamReview_BeamReviewProductReview_Product } as BeamReview_BeamReviewProductReview_Product; - message.brands = []; + fromPartial(object: DeepPartial): BeamProductReview_BeamProduct { + const message = { ...baseBeamProductReview_BeamProduct } as BeamProductReview_BeamProduct; + message.urls = []; if (object.name !== undefined && object.name !== null) { message.name = object.name; } else { @@ -1286,13 +1557,13 @@ export const BeamReview_BeamReviewProductReview_Product = { } else { message.url = ''; } - if (object.brands !== undefined && object.brands !== null) { - for (const e of object.brands) { - message.brands.push(e); + if (object.urls !== undefined && object.urls !== null) { + for (const e of object.urls) { + message.urls.push(e); } } if (object.ids !== undefined && object.ids !== null) { - message.ids = BeamReview_BeamReviewProductReview_Product_ProductIds.fromPartial(object.ids); + message.ids = BeamProductReview_BeamProduct_BeamProductIds.fromPartial(object.ids); } else { message.ids = undefined; } @@ -1300,10 +1571,10 @@ export const BeamReview_BeamReviewProductReview_Product = { }, }; -const baseBeamReview_BeamReviewProductReview_Product_ProductIds: object = { gtins: '', mpns: '', skus: '', asins: '' }; +const baseBeamProductReview_BeamProduct_BeamProductIds: object = { gtins: '', mpns: '', skus: '', asins: '' }; -export const BeamReview_BeamReviewProductReview_Product_ProductIds = { - encode(message: BeamReview_BeamReviewProductReview_Product_ProductIds, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { +export const BeamProductReview_BeamProduct_BeamProductIds = { + encode(message: BeamProductReview_BeamProduct_BeamProductIds, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.gtins) { writer.uint32(10).string(v!); } @@ -1319,10 +1590,10 @@ export const BeamReview_BeamReviewProductReview_Product_ProductIds = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_Product_ProductIds { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamProductReview_BeamProduct_BeamProductIds { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + const message = { ...baseBeamProductReview_BeamProduct_BeamProductIds } as BeamProductReview_BeamProduct_BeamProductIds; message.gtins = []; message.mpns = []; message.skus = []; @@ -1350,8 +1621,8 @@ export const BeamReview_BeamReviewProductReview_Product_ProductIds = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview_Product_ProductIds { - const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + fromJSON(object: any): BeamProductReview_BeamProduct_BeamProductIds { + const message = { ...baseBeamProductReview_BeamProduct_BeamProductIds } as BeamProductReview_BeamProduct_BeamProductIds; message.gtins = []; message.mpns = []; message.skus = []; @@ -1379,7 +1650,7 @@ export const BeamReview_BeamReviewProductReview_Product_ProductIds = { return message; }, - toJSON(message: BeamReview_BeamReviewProductReview_Product_ProductIds): unknown { + toJSON(message: BeamProductReview_BeamProduct_BeamProductIds): unknown { const obj: any = {}; if (message.gtins) { obj.gtins = message.gtins.map((e) => e); @@ -1404,8 +1675,8 @@ export const BeamReview_BeamReviewProductReview_Product_ProductIds = { return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_Product_ProductIds { - const message = { ...baseBeamReview_BeamReviewProductReview_Product_ProductIds } as BeamReview_BeamReviewProductReview_Product_ProductIds; + fromPartial(object: DeepPartial): BeamProductReview_BeamProduct_BeamProductIds { + const message = { ...baseBeamProductReview_BeamProduct_BeamProductIds } as BeamProductReview_BeamProduct_BeamProductIds; message.gtins = []; message.mpns = []; message.skus = []; @@ -1434,31 +1705,50 @@ export const BeamReview_BeamReviewProductReview_Product_ProductIds = { }, }; -const baseBeamReview_BeamReviewProductReview_RatingsEntry: object = { key: '', value: Long.ZERO }; +const baseBeamSchemeReview: object = {}; -export const BeamReview_BeamReviewProductReview_RatingsEntry = { - encode(message: BeamReview_BeamReviewProductReview_RatingsEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== '') { - writer.uint32(10).string(message.key); +export const BeamSchemeReview = { + encode(message: BeamSchemeReview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reward !== undefined) { + BeamReward.encode(message.reward, writer.uint32(10).fork()).ldelim(); + } + if (message.verifier !== undefined) { + BeamVerifier.encode(message.verifier, writer.uint32(18).fork()).ldelim(); + } + if (message.reviewer !== undefined) { + BeamReviewer.encode(message.reviewer, writer.uint32(26).fork()).ldelim(); } - if (!message.value.isZero()) { - writer.uint32(16).int64(message.value); + if (message.merchantReview !== undefined) { + BeamMerchantReview.encode(message.merchantReview, writer.uint32(34).fork()).ldelim(); + } + for (const v of message.productsReviews) { + BeamProductReview.encode(v!, writer.uint32(42).fork()).ldelim(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_RatingsEntry { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamSchemeReview { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; + const message = { ...baseBeamSchemeReview } as BeamSchemeReview; + message.productsReviews = []; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.reward = BeamReward.decode(reader, reader.uint32()); break; case 2: - message.value = reader.int64() as Long; + message.verifier = BeamVerifier.decode(reader, reader.uint32()); + break; + case 3: + message.reviewer = BeamReviewer.decode(reader, reader.uint32()); + break; + case 4: + message.merchantReview = BeamMerchantReview.decode(reader, reader.uint32()); + break; + case 5: + message.productsReviews.push(BeamProductReview.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -1468,69 +1758,108 @@ export const BeamReview_BeamReviewProductReview_RatingsEntry = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview_RatingsEntry { - const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; - if (object.key !== undefined && object.key !== null) { - message.key = String(object.key); + fromJSON(object: any): BeamSchemeReview { + const message = { ...baseBeamSchemeReview } as BeamSchemeReview; + message.productsReviews = []; + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.verifier !== undefined && object.verifier !== null) { + message.verifier = BeamVerifier.fromJSON(object.verifier); + } else { + message.verifier = undefined; + } + if (object.reviewer !== undefined && object.reviewer !== null) { + message.reviewer = BeamReviewer.fromJSON(object.reviewer); } else { - message.key = ''; + message.reviewer = undefined; } - if (object.value !== undefined && object.value !== null) { - message.value = Long.fromString(object.value); + if (object.merchantReview !== undefined && object.merchantReview !== null) { + message.merchantReview = BeamMerchantReview.fromJSON(object.merchantReview); } else { - message.value = Long.ZERO; + message.merchantReview = undefined; + } + if (object.productsReviews !== undefined && object.productsReviews !== null) { + for (const e of object.productsReviews) { + message.productsReviews.push(BeamProductReview.fromJSON(e)); + } } return message; }, - toJSON(message: BeamReview_BeamReviewProductReview_RatingsEntry): unknown { + toJSON(message: BeamSchemeReview): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); + message.verifier !== undefined && (obj.verifier = message.verifier ? BeamVerifier.toJSON(message.verifier) : undefined); + message.reviewer !== undefined && (obj.reviewer = message.reviewer ? BeamReviewer.toJSON(message.reviewer) : undefined); + message.merchantReview !== undefined && (obj.merchantReview = message.merchantReview ? BeamMerchantReview.toJSON(message.merchantReview) : undefined); + if (message.productsReviews) { + obj.productsReviews = message.productsReviews.map((e) => (e ? BeamProductReview.toJSON(e) : undefined)); + } else { + obj.productsReviews = []; + } return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_RatingsEntry { - const message = { ...baseBeamReview_BeamReviewProductReview_RatingsEntry } as BeamReview_BeamReviewProductReview_RatingsEntry; - if (object.key !== undefined && object.key !== null) { - message.key = object.key; + fromPartial(object: DeepPartial): BeamSchemeReview { + const message = { ...baseBeamSchemeReview } as BeamSchemeReview; + message.productsReviews = []; + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.verifier !== undefined && object.verifier !== null) { + message.verifier = BeamVerifier.fromPartial(object.verifier); + } else { + message.verifier = undefined; + } + if (object.reviewer !== undefined && object.reviewer !== null) { + message.reviewer = BeamReviewer.fromPartial(object.reviewer); } else { - message.key = ''; + message.reviewer = undefined; } - if (object.value !== undefined && object.value !== null) { - message.value = object.value as Long; + if (object.merchantReview !== undefined && object.merchantReview !== null) { + message.merchantReview = BeamMerchantReview.fromPartial(object.merchantReview); } else { - message.value = Long.ZERO; + message.merchantReview = undefined; + } + if (object.productsReviews !== undefined && object.productsReviews !== null) { + for (const e of object.productsReviews) { + message.productsReviews.push(BeamProductReview.fromPartial(e)); + } } return message; }, }; -const baseBeamReview_BeamReviewProductReview_ContentEntry: object = { key: '', value: '' }; +const baseBeamSchemeReward: object = {}; -export const BeamReview_BeamReviewProductReview_ContentEntry = { - encode(message: BeamReview_BeamReviewProductReview_ContentEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== '') { - writer.uint32(10).string(message.key); +export const BeamSchemeReward = { + encode(message: BeamSchemeReward, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reward !== undefined) { + BeamReward.encode(message.reward, writer.uint32(10).fork()).ldelim(); } - if (message.value !== '') { - writer.uint32(18).string(message.value); + if (message.verifier !== undefined) { + BeamVerifier.encode(message.verifier, writer.uint32(18).fork()).ldelim(); } return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): BeamReview_BeamReviewProductReview_ContentEntry { + decode(input: _m0.Reader | Uint8Array, length?: number): BeamSchemeReward { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; + const message = { ...baseBeamSchemeReward } as BeamSchemeReward; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.reward = BeamReward.decode(reader, reader.uint32()); break; case 2: - message.value = reader.string(); + message.verifier = BeamVerifier.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1540,45 +1869,45 @@ export const BeamReview_BeamReviewProductReview_ContentEntry = { return message; }, - fromJSON(object: any): BeamReview_BeamReviewProductReview_ContentEntry { - const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; - if (object.key !== undefined && object.key !== null) { - message.key = String(object.key); + fromJSON(object: any): BeamSchemeReward { + const message = { ...baseBeamSchemeReward } as BeamSchemeReward; + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromJSON(object.reward); } else { - message.key = ''; + message.reward = undefined; } - if (object.value !== undefined && object.value !== null) { - message.value = String(object.value); + if (object.verifier !== undefined && object.verifier !== null) { + message.verifier = BeamVerifier.fromJSON(object.verifier); } else { - message.value = ''; + message.verifier = undefined; } return message; }, - toJSON(message: BeamReview_BeamReviewProductReview_ContentEntry): unknown { + toJSON(message: BeamSchemeReward): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); + message.verifier !== undefined && (obj.verifier = message.verifier ? BeamVerifier.toJSON(message.verifier) : undefined); return obj; }, - fromPartial(object: DeepPartial): BeamReview_BeamReviewProductReview_ContentEntry { - const message = { ...baseBeamReview_BeamReviewProductReview_ContentEntry } as BeamReview_BeamReviewProductReview_ContentEntry; - if (object.key !== undefined && object.key !== null) { - message.key = object.key; + fromPartial(object: DeepPartial): BeamSchemeReward { + const message = { ...baseBeamSchemeReward } as BeamSchemeReward; + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamReward.fromPartial(object.reward); } else { - message.key = ''; + message.reward = undefined; } - if (object.value !== undefined && object.value !== null) { - message.value = object.value; + if (object.verifier !== undefined && object.verifier !== null) { + message.verifier = BeamVerifier.fromPartial(object.verifier); } else { - message.value = ''; + message.verifier = undefined; } return message; }, }; -const baseBeam: object = { creator: '', id: '', amount: Long.ZERO, status: '', secret: '', schema: '' }; +const baseBeam: object = { creator: '', id: '', amount: Long.ZERO, status: 0, secret: '', schema: '' }; export const Beam = { encode(message: Beam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { @@ -1591,8 +1920,8 @@ export const Beam = { if (!message.amount.isZero()) { writer.uint32(24).int64(message.amount); } - if (message.status !== '') { - writer.uint32(34).string(message.status); + if (message.status !== 0) { + writer.uint32(32).int32(message.status); } if (message.secret !== '') { writer.uint32(42).string(message.secret); @@ -1601,10 +1930,10 @@ export const Beam = { writer.uint32(50).string(message.schema); } if (message.reward !== undefined) { - BeamReward.encode(message.reward, writer.uint32(58).fork()).ldelim(); + BeamSchemeReward.encode(message.reward, writer.uint32(58).fork()).ldelim(); } if (message.review !== undefined) { - BeamReview.encode(message.review, writer.uint32(66).fork()).ldelim(); + BeamSchemeReview.encode(message.review, writer.uint32(66).fork()).ldelim(); } return writer; }, @@ -1626,7 +1955,7 @@ export const Beam = { message.amount = reader.int64() as Long; break; case 4: - message.status = reader.string(); + message.status = reader.int32() as any; break; case 5: message.secret = reader.string(); @@ -1635,10 +1964,10 @@ export const Beam = { message.schema = reader.string(); break; case 7: - message.reward = BeamReward.decode(reader, reader.uint32()); + message.reward = BeamSchemeReward.decode(reader, reader.uint32()); break; case 8: - message.review = BeamReview.decode(reader, reader.uint32()); + message.review = BeamSchemeReview.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -1666,9 +1995,9 @@ export const Beam = { message.amount = Long.ZERO; } if (object.status !== undefined && object.status !== null) { - message.status = String(object.status); + message.status = beamStateFromJSON(object.status); } else { - message.status = ''; + message.status = 0; } if (object.secret !== undefined && object.secret !== null) { message.secret = String(object.secret); @@ -1681,12 +2010,12 @@ export const Beam = { message.schema = ''; } if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromJSON(object.reward); + message.reward = BeamSchemeReward.fromJSON(object.reward); } else { message.reward = undefined; } if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromJSON(object.review); + message.review = BeamSchemeReview.fromJSON(object.review); } else { message.review = undefined; } @@ -1698,11 +2027,11 @@ export const Beam = { message.creator !== undefined && (obj.creator = message.creator); message.id !== undefined && (obj.id = message.id); message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); - message.status !== undefined && (obj.status = message.status); + message.status !== undefined && (obj.status = beamStateToJSON(message.status)); message.secret !== undefined && (obj.secret = message.secret); message.schema !== undefined && (obj.schema = message.schema); - message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); - message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); + message.reward !== undefined && (obj.reward = message.reward ? BeamSchemeReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamSchemeReview.toJSON(message.review) : undefined); return obj; }, @@ -1726,7 +2055,7 @@ export const Beam = { if (object.status !== undefined && object.status !== null) { message.status = object.status; } else { - message.status = ''; + message.status = 0; } if (object.secret !== undefined && object.secret !== null) { message.secret = object.secret; @@ -1739,152 +2068,12 @@ export const Beam = { message.schema = ''; } if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromPartial(object.reward); - } else { - message.reward = undefined; - } - if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromPartial(object.review); - } else { - message.review = undefined; - } - return message; - }, -}; - -const baseMsgOpenBeam: object = { id: '', creator: '', amount: Long.ZERO, secret: '' }; - -export const MsgOpenBeam = { - encode(message: MsgOpenBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== '') { - writer.uint32(10).string(message.id); - } - if (message.creator !== '') { - writer.uint32(18).string(message.creator); - } - if (!message.amount.isZero()) { - writer.uint32(24).int64(message.amount); - } - if (message.secret !== '') { - writer.uint32(34).string(message.secret); - } - if (message.reward !== undefined) { - BeamReward.encode(message.reward, writer.uint32(42).fork()).ldelim(); - } - if (message.review !== undefined) { - BeamReview.encode(message.review, writer.uint32(50).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgOpenBeam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseMsgOpenBeam } as MsgOpenBeam; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; - case 2: - message.creator = reader.string(); - break; - case 3: - message.amount = reader.int64() as Long; - break; - case 4: - message.secret = reader.string(); - break; - case 5: - message.reward = BeamReward.decode(reader, reader.uint32()); - break; - case 6: - message.review = BeamReview.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): MsgOpenBeam { - const message = { ...baseMsgOpenBeam } as MsgOpenBeam; - if (object.id !== undefined && object.id !== null) { - message.id = String(object.id); - } else { - message.id = ''; - } - if (object.creator !== undefined && object.creator !== null) { - message.creator = String(object.creator); - } else { - message.creator = ''; - } - if (object.amount !== undefined && object.amount !== null) { - message.amount = Long.fromString(object.amount); - } else { - message.amount = Long.ZERO; - } - if (object.secret !== undefined && object.secret !== null) { - message.secret = String(object.secret); - } else { - message.secret = ''; - } - if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromJSON(object.reward); - } else { - message.reward = undefined; - } - if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromJSON(object.review); - } else { - message.review = undefined; - } - return message; - }, - - toJSON(message: MsgOpenBeam): unknown { - const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.creator !== undefined && (obj.creator = message.creator); - message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); - message.secret !== undefined && (obj.secret = message.secret); - message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); - message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); - return obj; - }, - - fromPartial(object: DeepPartial): MsgOpenBeam { - const message = { ...baseMsgOpenBeam } as MsgOpenBeam; - if (object.id !== undefined && object.id !== null) { - message.id = object.id; - } else { - message.id = ''; - } - if (object.creator !== undefined && object.creator !== null) { - message.creator = object.creator; - } else { - message.creator = ''; - } - if (object.amount !== undefined && object.amount !== null) { - message.amount = object.amount as Long; - } else { - message.amount = Long.ZERO; - } - if (object.secret !== undefined && object.secret !== null) { - message.secret = object.secret; - } else { - message.secret = ''; - } - if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromPartial(object.reward); + message.reward = BeamSchemeReward.fromPartial(object.reward); } else { message.reward = undefined; } if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromPartial(object.review); + message.review = BeamSchemeReview.fromPartial(object.review); } else { message.review = undefined; } @@ -1892,362 +2081,6 @@ export const MsgOpenBeam = { }, }; -const baseMsgUpdateBeam: object = { updater: '', id: '', amount: Long.ZERO }; - -export const MsgUpdateBeam = { - encode(message: MsgUpdateBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.updater !== '') { - writer.uint32(10).string(message.updater); - } - if (message.id !== '') { - writer.uint32(18).string(message.id); - } - if (!message.amount.isZero()) { - writer.uint32(24).int64(message.amount); - } - if (message.reward !== undefined) { - BeamReward.encode(message.reward, writer.uint32(34).fork()).ldelim(); - } - if (message.review !== undefined) { - BeamReview.encode(message.review, writer.uint32(42).fork()).ldelim(); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateBeam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.updater = reader.string(); - break; - case 2: - message.id = reader.string(); - break; - case 3: - message.amount = reader.int64() as Long; - break; - case 4: - message.reward = BeamReward.decode(reader, reader.uint32()); - break; - case 5: - message.review = BeamReview.decode(reader, reader.uint32()); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): MsgUpdateBeam { - const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = String(object.updater); - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = String(object.id); - } else { - message.id = ''; - } - if (object.amount !== undefined && object.amount !== null) { - message.amount = Long.fromString(object.amount); - } else { - message.amount = Long.ZERO; - } - if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromJSON(object.reward); - } else { - message.reward = undefined; - } - if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromJSON(object.review); - } else { - message.review = undefined; - } - return message; - }, - - toJSON(message: MsgUpdateBeam): unknown { - const obj: any = {}; - message.updater !== undefined && (obj.updater = message.updater); - message.id !== undefined && (obj.id = message.id); - message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); - message.reward !== undefined && (obj.reward = message.reward ? BeamReward.toJSON(message.reward) : undefined); - message.review !== undefined && (obj.review = message.review ? BeamReview.toJSON(message.review) : undefined); - return obj; - }, - - fromPartial(object: DeepPartial): MsgUpdateBeam { - const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = object.updater; - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = object.id; - } else { - message.id = ''; - } - if (object.amount !== undefined && object.amount !== null) { - message.amount = object.amount as Long; - } else { - message.amount = Long.ZERO; - } - if (object.reward !== undefined && object.reward !== null) { - message.reward = BeamReward.fromPartial(object.reward); - } else { - message.reward = undefined; - } - if (object.review !== undefined && object.review !== null) { - message.review = BeamReview.fromPartial(object.review); - } else { - message.review = undefined; - } - return message; - }, -}; - -const baseMsgCancelBeam: object = { updater: '', id: '' }; - -export const MsgCancelBeam = { - encode(message: MsgCancelBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.updater !== '') { - writer.uint32(10).string(message.updater); - } - if (message.id !== '') { - writer.uint32(18).string(message.id); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCancelBeam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseMsgCancelBeam } as MsgCancelBeam; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.updater = reader.string(); - break; - case 2: - message.id = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): MsgCancelBeam { - const message = { ...baseMsgCancelBeam } as MsgCancelBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = String(object.updater); - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = String(object.id); - } else { - message.id = ''; - } - return message; - }, - - toJSON(message: MsgCancelBeam): unknown { - const obj: any = {}; - message.updater !== undefined && (obj.updater = message.updater); - message.id !== undefined && (obj.id = message.id); - return obj; - }, - - fromPartial(object: DeepPartial): MsgCancelBeam { - const message = { ...baseMsgCancelBeam } as MsgCancelBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = object.updater; - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = object.id; - } else { - message.id = ''; - } - return message; - }, -}; - -const baseMsgCloseBeam: object = { updater: '', id: '' }; - -export const MsgCloseBeam = { - encode(message: MsgCloseBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.updater !== '') { - writer.uint32(10).string(message.updater); - } - if (message.id !== '') { - writer.uint32(18).string(message.id); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgCloseBeam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseMsgCloseBeam } as MsgCloseBeam; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.updater = reader.string(); - break; - case 2: - message.id = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): MsgCloseBeam { - const message = { ...baseMsgCloseBeam } as MsgCloseBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = String(object.updater); - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = String(object.id); - } else { - message.id = ''; - } - return message; - }, - - toJSON(message: MsgCloseBeam): unknown { - const obj: any = {}; - message.updater !== undefined && (obj.updater = message.updater); - message.id !== undefined && (obj.id = message.id); - return obj; - }, - - fromPartial(object: DeepPartial): MsgCloseBeam { - const message = { ...baseMsgCloseBeam } as MsgCloseBeam; - if (object.updater !== undefined && object.updater !== null) { - message.updater = object.updater; - } else { - message.updater = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = object.id; - } else { - message.id = ''; - } - return message; - }, -}; - -const baseMsgClaimBeam: object = { claimer: '', id: '', secret: '' }; - -export const MsgClaimBeam = { - encode(message: MsgClaimBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.claimer !== '') { - writer.uint32(10).string(message.claimer); - } - if (message.id !== '') { - writer.uint32(18).string(message.id); - } - if (message.secret !== '') { - writer.uint32(26).string(message.secret); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgClaimBeam { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = { ...baseMsgClaimBeam } as MsgClaimBeam; - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.claimer = reader.string(); - break; - case 2: - message.id = reader.string(); - break; - case 3: - message.secret = reader.string(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): MsgClaimBeam { - const message = { ...baseMsgClaimBeam } as MsgClaimBeam; - if (object.claimer !== undefined && object.claimer !== null) { - message.claimer = String(object.claimer); - } else { - message.claimer = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = String(object.id); - } else { - message.id = ''; - } - if (object.secret !== undefined && object.secret !== null) { - message.secret = String(object.secret); - } else { - message.secret = ''; - } - return message; - }, - - toJSON(message: MsgClaimBeam): unknown { - const obj: any = {}; - message.claimer !== undefined && (obj.claimer = message.claimer); - message.id !== undefined && (obj.id = message.id); - message.secret !== undefined && (obj.secret = message.secret); - return obj; - }, - - fromPartial(object: DeepPartial): MsgClaimBeam { - const message = { ...baseMsgClaimBeam } as MsgClaimBeam; - if (object.claimer !== undefined && object.claimer !== null) { - message.claimer = object.claimer; - } else { - message.claimer = ''; - } - if (object.id !== undefined && object.id !== null) { - message.id = object.id; - } else { - message.id = ''; - } - if (object.secret !== undefined && object.secret !== null) { - message.secret = object.secret; - } else { - message.secret = ''; - } - return message; - }, -}; - type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; export type DeepPartial = T extends Builtin ? T diff --git a/src/codec/chain/beam/query.ts b/src/codec/chain/beam/query.ts new file mode 100644 index 0000000..4134288 --- /dev/null +++ b/src/codec/chain/beam/query.ts @@ -0,0 +1,312 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Beam } from './beam'; +import { PageRequest, PageResponse } from '../../../../scripts/src/codec/cosmos/base/query/v1beta1/pagination'; + +export const protobufPackage = 'lum.network.beam'; + +export interface QueryGetBeamRequest { + id: string; +} + +export interface QueryGetBeamResponse { + Beam?: Beam; +} + +export interface QueryFetchBeamsRequest { + pagination?: PageRequest; +} + +export interface QueryFetchBeamsResponse { + Beam: Beam[]; + pagination?: PageResponse; +} + +const baseQueryGetBeamRequest: object = { id: '' }; + +export const QueryGetBeamRequest = { + encode(message: QueryGetBeamRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== '') { + writer.uint32(10).string(message.id); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetBeamRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGetBeamRequest } as QueryGetBeamRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGetBeamRequest { + const message = { ...baseQueryGetBeamRequest } as QueryGetBeamRequest; + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + return message; + }, + + toJSON(message: QueryGetBeamRequest): unknown { + const obj: any = {}; + message.id !== undefined && (obj.id = message.id); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGetBeamRequest { + const message = { ...baseQueryGetBeamRequest } as QueryGetBeamRequest; + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + return message; + }, +}; + +const baseQueryGetBeamResponse: object = {}; + +export const QueryGetBeamResponse = { + encode(message: QueryGetBeamResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.Beam !== undefined) { + Beam.encode(message.Beam, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetBeamResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryGetBeamResponse } as QueryGetBeamResponse; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.Beam = Beam.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryGetBeamResponse { + const message = { ...baseQueryGetBeamResponse } as QueryGetBeamResponse; + if (object.Beam !== undefined && object.Beam !== null) { + message.Beam = Beam.fromJSON(object.Beam); + } else { + message.Beam = undefined; + } + return message; + }, + + toJSON(message: QueryGetBeamResponse): unknown { + const obj: any = {}; + message.Beam !== undefined && (obj.Beam = message.Beam ? Beam.toJSON(message.Beam) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryGetBeamResponse { + const message = { ...baseQueryGetBeamResponse } as QueryGetBeamResponse; + if (object.Beam !== undefined && object.Beam !== null) { + message.Beam = Beam.fromPartial(object.Beam); + } else { + message.Beam = undefined; + } + return message; + }, +}; + +const baseQueryFetchBeamsRequest: object = {}; + +export const QueryFetchBeamsRequest = { + encode(message: QueryFetchBeamsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchBeamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchBeamsRequest } as QueryFetchBeamsRequest; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchBeamsRequest { + const message = { ...baseQueryFetchBeamsRequest } as QueryFetchBeamsRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryFetchBeamsRequest): unknown { + const obj: any = {}; + message.pagination !== undefined && (obj.pagination = message.pagination ? PageRequest.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchBeamsRequest { + const message = { ...baseQueryFetchBeamsRequest } as QueryFetchBeamsRequest; + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageRequest.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +const baseQueryFetchBeamsResponse: object = {}; + +export const QueryFetchBeamsResponse = { + encode(message: QueryFetchBeamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.Beam) { + Beam.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryFetchBeamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseQueryFetchBeamsResponse } as QueryFetchBeamsResponse; + message.Beam = []; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.Beam.push(Beam.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryFetchBeamsResponse { + const message = { ...baseQueryFetchBeamsResponse } as QueryFetchBeamsResponse; + message.Beam = []; + if (object.Beam !== undefined && object.Beam !== null) { + for (const e of object.Beam) { + message.Beam.push(Beam.fromJSON(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromJSON(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, + + toJSON(message: QueryFetchBeamsResponse): unknown { + const obj: any = {}; + if (message.Beam) { + obj.Beam = message.Beam.map((e) => (e ? Beam.toJSON(e) : undefined)); + } else { + obj.Beam = []; + } + message.pagination !== undefined && (obj.pagination = message.pagination ? PageResponse.toJSON(message.pagination) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): QueryFetchBeamsResponse { + const message = { ...baseQueryFetchBeamsResponse } as QueryFetchBeamsResponse; + message.Beam = []; + if (object.Beam !== undefined && object.Beam !== null) { + for (const e of object.Beam) { + message.Beam.push(Beam.fromPartial(e)); + } + } + if (object.pagination !== undefined && object.pagination !== null) { + message.pagination = PageResponse.fromPartial(object.pagination); + } else { + message.pagination = undefined; + } + return message; + }, +}; + +/** Query defines the gRPC querier service. */ +export interface Query { + Beam(request: QueryGetBeamRequest): Promise; + Beams(request: QueryFetchBeamsRequest): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + } + Beam(request: QueryGetBeamRequest): Promise { + const data = QueryGetBeamRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.beam.Query', 'Beam', data); + return promise.then((data) => QueryGetBeamResponse.decode(new _m0.Reader(data))); + } + + Beams(request: QueryFetchBeamsRequest): Promise { + const data = QueryFetchBeamsRequest.encode(request).finish(); + const promise = this.rpc.request('lum.network.beam.Query', 'Beams', data); + return promise.then((data) => QueryFetchBeamsResponse.decode(new _m0.Reader(data))); + } +} + +interface Rpc { + request(service: string, method: string, data: Uint8Array): Promise; +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; +export type DeepPartial = T extends Builtin + ? T + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in keyof T]?: DeepPartial } + : Partial; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} diff --git a/src/codec/chain/beam/tx.ts b/src/codec/chain/beam/tx.ts new file mode 100644 index 0000000..0229d24 --- /dev/null +++ b/src/codec/chain/beam/tx.ts @@ -0,0 +1,433 @@ +/* eslint-disable */ +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { BeamSchemeReward, BeamSchemeReview, BeamState, beamStateFromJSON, beamStateToJSON } from './beam'; + +export const protobufPackage = 'lum.network.beam'; + +export interface MsgOpenBeam { + id: string; + creator: string; + secret: string; + amount: Long; + schema: string; + reward?: BeamSchemeReward; + review?: BeamSchemeReview; +} + +export interface MsgUpdateBeam { + updater: string; + id: string; + amount: Long; + status: BeamState; + reward?: BeamSchemeReward; + review?: BeamSchemeReview; +} + +export interface MsgClaimBeam { + claimer: string; + id: string; + secret: string; +} + +const baseMsgOpenBeam: object = { id: '', creator: '', secret: '', amount: Long.ZERO, schema: '' }; + +export const MsgOpenBeam = { + encode(message: MsgOpenBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== '') { + writer.uint32(10).string(message.id); + } + if (message.creator !== '') { + writer.uint32(18).string(message.creator); + } + if (message.secret !== '') { + writer.uint32(26).string(message.secret); + } + if (!message.amount.isZero()) { + writer.uint32(32).int64(message.amount); + } + if (message.schema !== '') { + writer.uint32(42).string(message.schema); + } + if (message.reward !== undefined) { + BeamSchemeReward.encode(message.reward, writer.uint32(50).fork()).ldelim(); + } + if (message.review !== undefined) { + BeamSchemeReview.encode(message.review, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgOpenBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = reader.string(); + break; + case 2: + message.creator = reader.string(); + break; + case 3: + message.secret = reader.string(); + break; + case 4: + message.amount = reader.int64() as Long; + break; + case 5: + message.schema = reader.string(); + break; + case 6: + message.reward = BeamSchemeReward.decode(reader, reader.uint32()); + break; + case 7: + message.review = BeamSchemeReview.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgOpenBeam { + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.creator !== undefined && object.creator !== null) { + message.creator = String(object.creator); + } else { + message.creator = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = String(object.secret); + } else { + message.secret = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.schema !== undefined && object.schema !== null) { + message.schema = String(object.schema); + } else { + message.schema = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamSchemeReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamSchemeReview.fromJSON(object.review); + } else { + message.review = undefined; + } + return message; + }, + + toJSON(message: MsgOpenBeam): unknown { + const obj: any = {}; + message.id !== undefined && (obj.id = message.id); + message.creator !== undefined && (obj.creator = message.creator); + message.secret !== undefined && (obj.secret = message.secret); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.schema !== undefined && (obj.schema = message.schema); + message.reward !== undefined && (obj.reward = message.reward ? BeamSchemeReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamSchemeReview.toJSON(message.review) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): MsgOpenBeam { + const message = { ...baseMsgOpenBeam } as MsgOpenBeam; + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.creator !== undefined && object.creator !== null) { + message.creator = object.creator; + } else { + message.creator = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = object.secret; + } else { + message.secret = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.schema !== undefined && object.schema !== null) { + message.schema = object.schema; + } else { + message.schema = ''; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamSchemeReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamSchemeReview.fromPartial(object.review); + } else { + message.review = undefined; + } + return message; + }, +}; + +const baseMsgUpdateBeam: object = { updater: '', id: '', amount: Long.ZERO, status: 0 }; + +export const MsgUpdateBeam = { + encode(message: MsgUpdateBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.updater !== '') { + writer.uint32(10).string(message.updater); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + if (!message.amount.isZero()) { + writer.uint32(24).int64(message.amount); + } + if (message.status !== 0) { + writer.uint32(32).int32(message.status); + } + if (message.reward !== undefined) { + BeamSchemeReward.encode(message.reward, writer.uint32(42).fork()).ldelim(); + } + if (message.review !== undefined) { + BeamSchemeReview.encode(message.review, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.updater = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + case 3: + message.amount = reader.int64() as Long; + break; + case 4: + message.status = reader.int32() as any; + break; + case 5: + message.reward = BeamSchemeReward.decode(reader, reader.uint32()); + break; + case 6: + message.review = BeamSchemeReview.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgUpdateBeam { + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = String(object.updater); + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = Long.fromString(object.amount); + } else { + message.amount = Long.ZERO; + } + if (object.status !== undefined && object.status !== null) { + message.status = beamStateFromJSON(object.status); + } else { + message.status = 0; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamSchemeReward.fromJSON(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamSchemeReview.fromJSON(object.review); + } else { + message.review = undefined; + } + return message; + }, + + toJSON(message: MsgUpdateBeam): unknown { + const obj: any = {}; + message.updater !== undefined && (obj.updater = message.updater); + message.id !== undefined && (obj.id = message.id); + message.amount !== undefined && (obj.amount = (message.amount || Long.ZERO).toString()); + message.status !== undefined && (obj.status = beamStateToJSON(message.status)); + message.reward !== undefined && (obj.reward = message.reward ? BeamSchemeReward.toJSON(message.reward) : undefined); + message.review !== undefined && (obj.review = message.review ? BeamSchemeReview.toJSON(message.review) : undefined); + return obj; + }, + + fromPartial(object: DeepPartial): MsgUpdateBeam { + const message = { ...baseMsgUpdateBeam } as MsgUpdateBeam; + if (object.updater !== undefined && object.updater !== null) { + message.updater = object.updater; + } else { + message.updater = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.amount !== undefined && object.amount !== null) { + message.amount = object.amount as Long; + } else { + message.amount = Long.ZERO; + } + if (object.status !== undefined && object.status !== null) { + message.status = object.status; + } else { + message.status = 0; + } + if (object.reward !== undefined && object.reward !== null) { + message.reward = BeamSchemeReward.fromPartial(object.reward); + } else { + message.reward = undefined; + } + if (object.review !== undefined && object.review !== null) { + message.review = BeamSchemeReview.fromPartial(object.review); + } else { + message.review = undefined; + } + return message; + }, +}; + +const baseMsgClaimBeam: object = { claimer: '', id: '', secret: '' }; + +export const MsgClaimBeam = { + encode(message: MsgClaimBeam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.claimer !== '') { + writer.uint32(10).string(message.claimer); + } + if (message.id !== '') { + writer.uint32(18).string(message.id); + } + if (message.secret !== '') { + writer.uint32(26).string(message.secret); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgClaimBeam { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.claimer = reader.string(); + break; + case 2: + message.id = reader.string(); + break; + case 3: + message.secret = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgClaimBeam { + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + if (object.claimer !== undefined && object.claimer !== null) { + message.claimer = String(object.claimer); + } else { + message.claimer = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = String(object.id); + } else { + message.id = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = String(object.secret); + } else { + message.secret = ''; + } + return message; + }, + + toJSON(message: MsgClaimBeam): unknown { + const obj: any = {}; + message.claimer !== undefined && (obj.claimer = message.claimer); + message.id !== undefined && (obj.id = message.id); + message.secret !== undefined && (obj.secret = message.secret); + return obj; + }, + + fromPartial(object: DeepPartial): MsgClaimBeam { + const message = { ...baseMsgClaimBeam } as MsgClaimBeam; + if (object.claimer !== undefined && object.claimer !== null) { + message.claimer = object.claimer; + } else { + message.claimer = ''; + } + if (object.id !== undefined && object.id !== null) { + message.id = object.id; + } else { + message.id = ''; + } + if (object.secret !== undefined && object.secret !== null) { + message.secret = object.secret; + } else { + message.secret = ''; + } + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined | Long; +export type DeepPartial = T extends Builtin + ? T + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in keyof T]?: DeepPartial } + : Partial; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} diff --git a/src/messages/beam/MsgCancelBeam.ts b/src/messages/beam/MsgCancelBeam.ts deleted file mode 100644 index ce536fa..0000000 --- a/src/messages/beam/MsgCancelBeam.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Message } from '../Message'; -import { MsgCancelBeam } from '../../codec/chain/beam/beam'; - -export const MsgCancelBeamUrl = '/lum.network.beam.MsgCancelBeam'; - -export const BuildMsgCancelBeam = (updater: string, id: string): Message => { - return { - typeUrl: MsgCancelBeamUrl, - value: { - updater, - id, - } as MsgCancelBeam, - }; -}; diff --git a/src/messages/beam/MsgClaimBeam.ts b/src/messages/beam/MsgClaimBeam.ts index a473e90..0322ab8 100644 --- a/src/messages/beam/MsgClaimBeam.ts +++ b/src/messages/beam/MsgClaimBeam.ts @@ -1,5 +1,5 @@ import { Message } from '../Message'; -import { MsgClaimBeam } from '../../codec/chain/beam/beam'; +import { MsgClaimBeam } from '../../codec/chain/beam/tx'; export const MsgClaimBeamUrl = '/lum.network.beam.MsgClaimBeam'; diff --git a/src/messages/beam/MsgOpenBeam.ts b/src/messages/beam/MsgOpenBeam.ts index 9377443..d933537 100644 --- a/src/messages/beam/MsgOpenBeam.ts +++ b/src/messages/beam/MsgOpenBeam.ts @@ -1,10 +1,11 @@ import { Message } from '../Message'; -import { BeamReview, BeamReward, MsgOpenBeam } from '../../codec/chain/beam/beam'; import Long from 'long'; +import { BeamSchemeReview, BeamSchemeReward } from '../../codec/chain/beam/beam'; +import { MsgOpenBeam } from '../../codec/chain/beam/tx'; export const MsgOpenBeamUrl = '/lum.network.beam.MsgOpenBeam'; -export const BuildMsgOpenBeam = (id: string, creator: string, amount: Long, secret: string, reward?: BeamReward, review?: BeamReview): Message => { +export const BuildMsgOpenBeam = (id: string, creator: string, amount: Long, secret: string, schema: string, reward?: BeamSchemeReward, review?: BeamSchemeReview): Message => { return { typeUrl: MsgOpenBeamUrl, value: { @@ -12,6 +13,7 @@ export const BuildMsgOpenBeam = (id: string, creator: string, amount: Long, secr creator, amount, secret, + schema, reward, review, } as MsgOpenBeam, diff --git a/src/messages/beam/MsgUpdateBeam.ts b/src/messages/beam/MsgUpdateBeam.ts index b93944e..d77e50e 100644 --- a/src/messages/beam/MsgUpdateBeam.ts +++ b/src/messages/beam/MsgUpdateBeam.ts @@ -1,16 +1,18 @@ import { Message } from '../Message'; -import { BeamReview, BeamReward, MsgUpdateBeam } from '../../codec/chain/beam/beam'; import Long from 'long'; +import { BeamSchemeReview, BeamSchemeReward, BeamState } from '../../codec/chain/beam/beam'; +import { MsgUpdateBeam } from '../../codec/chain/beam/tx'; export const MsgUpdateBeamUrl = '/lum.network.beam.MsgUpdateBeam'; -export const BuildMsgUpdateBeam = (updater: string, id: string, amount: Long, reward?: BeamReward, review?: BeamReview): Message => { +export const BuildMsgUpdateBeam = (updater: string, id: string, amount: Long, status?: BeamState, reward?: BeamSchemeReward, review?: BeamSchemeReview): Message => { return { typeUrl: MsgUpdateBeamUrl, value: { updater, id, amount, + status, reward, review, } as MsgUpdateBeam, diff --git a/src/messages/beam/index.ts b/src/messages/beam/index.ts index 7c72ab6..bd6fc44 100644 --- a/src/messages/beam/index.ts +++ b/src/messages/beam/index.ts @@ -1,4 +1,3 @@ -export * from './MsgCancelBeam'; export * from './MsgClaimBeam'; export * from './MsgOpenBeam'; export * from './MsgUpdateBeam'; diff --git a/src/registry/index.ts b/src/registry/index.ts index ddc8279..b875db2 100644 --- a/src/registry/index.ts +++ b/src/registry/index.ts @@ -7,7 +7,7 @@ import { BaseAccount } from '../codec/cosmos/auth/v1beta1/auth'; import { MsgSend, MsgMultiSend } from '../codec/cosmos/bank/v1beta1/tx'; import { MsgFundCommunityPool, MsgSetWithdrawAddress, MsgWithdrawDelegatorReward, MsgWithdrawValidatorCommission } from '../codec/cosmos/distribution/v1beta1/tx'; import { MsgBeginRedelegate, MsgCreateValidator, MsgDelegate, MsgEditValidator, MsgUndelegate } from '../codec/cosmos/staking/v1beta1/tx'; -import { MsgCancelBeam, MsgClaimBeam, MsgOpenBeam, MsgUpdateBeam } from '../codec/chain/beam/beam'; +import { MsgClaimBeam, MsgOpenBeam, MsgUpdateBeam } from '../codec/chain/beam/tx'; const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.crypto.ed25519.PubKey', PubKey as GeneratedType], @@ -25,7 +25,6 @@ const registryTypes: Iterable<[string, GeneratedType]> = [ ['/cosmos.staking.v1beta1.MsgUndelegate', MsgUndelegate as GeneratedType], ['/lum.network.beam.MsgOpenBeam', MsgOpenBeam as GeneratedType], ['/lum.network.beam.MsgUpdateBeam', MsgUpdateBeam as GeneratedType], - ['/lum.network.beam.MsgCancelBeam', MsgCancelBeam as GeneratedType], ['/lum.network.beam.MsgClaimBeam', MsgClaimBeam as GeneratedType], ];