Check builder format in SigningCosmWasmClient.upload

This commit is contained in:
Simon Warta 2020-03-02 12:23:03 +01:00
parent 5de5d7ce61
commit efb272e50d

View File

@ -2,6 +2,7 @@ import { Sha256 } from "@iov/crypto";
import { Encoding } from "@iov/encoding";
import pako from "pako";
import { isValidBuilder } from "./builder";
import { CosmWasmClient, GetNonceResult, PostTxResult } from "./cosmwasmclient";
import { makeSignBytes } from "./encoding";
import { findAttribute, Log } from "./logs";
@ -32,6 +33,15 @@ function singleAmount(amount: number, denom: string): readonly Coin[] {
return [{ amount: amount.toString(), denom: denom }];
}
function prepareBuilder(buider: string | undefined): string {
if (buider === undefined) {
return ""; // normalization needed by backend
} else {
if (!isValidBuilder(buider)) throw new Error("The builder (Docker Hub image with tag) is not valid");
return buider;
}
}
const defaultFees: FeeTable = {
upload: {
amount: singleAmount(25000, "ucosm"),
@ -105,7 +115,7 @@ export class SigningCosmWasmClient extends CosmWasmClient {
/** Uploads code and returns a receipt, including the code ID */
public async upload(wasmCode: Uint8Array, meta: UploadMeta = {}, memo = ""): Promise<UploadReceipt> {
const source = meta.source || "";
const builder = meta.builder || "";
const builder = prepareBuilder(meta.builder);
const compressed = pako.gzip(wasmCode, { level: 9 });
const storeCodeMsg: MsgStoreCode = {