diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts index f65e2f48..c316ebc3 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.searchtx.spec.ts @@ -79,7 +79,8 @@ async function sendTokens( }, ]; const gasLimit = 200000; - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit); + const feePayer = ""; + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit, feePayer); const chainId = await client.getChainId(); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); diff --git a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts index 669602dd..d25bffc0 100644 --- a/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/cosmwasmclient.spec.ts @@ -203,7 +203,8 @@ describe("CosmWasmClient", () => { }; const txBodyBytes = registry.encode(txBody); const gasLimit = Int53.fromString(fee.gas).toNumber(); - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit); + const feePayer = "" + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit, feePayer); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); const { signed, signature } = await wallet.signDirect(alice.address0, signDoc); const txRaw = TxRaw.fromPartial({ diff --git a/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts b/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts index 2065437c..92152524 100644 --- a/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts +++ b/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts @@ -582,10 +582,12 @@ export class SigningCosmWasmClient extends CosmWasmClient { const signedTxBodyBytes = this.registry.encode(signedTxBody); const signedGasLimit = Int53.fromString(signed.fee.gas).toNumber(); const signedSequence = Int53.fromString(signed.sequence).toNumber(); + const signedFeePayer = "" const signedAuthInfoBytes = makeAuthInfoBytes( [{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, + signedFeePayer, signMode, ); return TxRaw.fromPartial({ @@ -619,7 +621,8 @@ export class SigningCosmWasmClient extends CosmWasmClient { }; const txBodyBytes = this.registry.encode(txBody); const gasLimit = Int53.fromString(fee.gas).toNumber(); - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit); + const feePayer = fee.granter == undefined ? "" : fee.granter + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit, feePayer); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc); return TxRaw.fromPartial({ diff --git a/packages/cosmwasm-stargate/src/testutils.spec.ts b/packages/cosmwasm-stargate/src/testutils.spec.ts index c4166443..05da4884 100644 --- a/packages/cosmwasm-stargate/src/testutils.spec.ts +++ b/packages/cosmwasm-stargate/src/testutils.spec.ts @@ -225,6 +225,7 @@ export class ModifyingDirectSecp256k1HdWallet extends DirectSecp256k1HdWallet { })); const modifiedFeeAmount = coins(3000, "ucosm"); const modifiedGasLimit = 333333; + const modifiedFeePayer = ""; const modifiedSignDoc = { ...signDoc, bodyBytes: Uint8Array.from(TxBody.encode(modifiedTxBody).finish()), @@ -232,6 +233,7 @@ export class ModifyingDirectSecp256k1HdWallet extends DirectSecp256k1HdWallet { signers, modifiedFeeAmount, modifiedGasLimit, + modifiedFeePayer, SignMode.SIGN_MODE_DIRECT, ), }; diff --git a/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts b/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts index 0b9122f3..0aef01c1 100644 --- a/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts +++ b/packages/proto-signing/src/directsecp256k1hdwallet.spec.ts @@ -261,10 +261,11 @@ describe("DirectSecp256k1HdWallet", () => { }; const fee = coins(2000, "ucosm"); const gasLimit = 200000; + const feePayer = "" const chainId = "simd-testing"; const signDoc = makeSignDoc( fromHex(bodyBytes), - makeAuthInfoBytes([{ pubkey, sequence }], fee, gasLimit), + makeAuthInfoBytes([{ pubkey, sequence }], fee, gasLimit, feePayer), chainId, accountNumber, ); diff --git a/packages/proto-signing/src/directsecp256k1wallet.spec.ts b/packages/proto-signing/src/directsecp256k1wallet.spec.ts index ab42c726..fe388eb5 100644 --- a/packages/proto-signing/src/directsecp256k1wallet.spec.ts +++ b/packages/proto-signing/src/directsecp256k1wallet.spec.ts @@ -44,9 +44,10 @@ describe("DirectSecp256k1Wallet", () => { const fee = coins(2000, "ucosm"); const gasLimit = 200000; const chainId = "simd-testing"; + const feePayer = ""; const signDoc = makeSignDoc( fromHex(bodyBytes), - makeAuthInfoBytes([{ pubkey, sequence }], fee, gasLimit), + makeAuthInfoBytes([{ pubkey, sequence }], fee, gasLimit, feePayer), chainId, accountNumber, ); diff --git a/packages/stargate/src/signingstargateclient.ts b/packages/stargate/src/signingstargateclient.ts index 9dec3293..4afece8b 100644 --- a/packages/stargate/src/signingstargateclient.ts +++ b/packages/stargate/src/signingstargateclient.ts @@ -362,10 +362,12 @@ export class SigningStargateClient extends StargateClient { const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject); const signedGasLimit = Int53.fromString(signed.fee.gas).toNumber(); const signedSequence = Int53.fromString(signed.sequence).toNumber(); + const signedFeePayer = signed.fee.granter == undefined ? "" : signed.fee.granter const signedAuthInfoBytes = makeAuthInfoBytes( [{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, + signedFeePayer, signMode, ); return TxRaw.fromPartial({ @@ -399,7 +401,8 @@ export class SigningStargateClient extends StargateClient { }; const txBodyBytes = this.registry.encode(txBodyEncodeObject); const gasLimit = Int53.fromString(fee.gas).toNumber(); - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit); + const feePayer = fee.granter == undefined ? "" : fee.granter + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit, feePayer); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); const { signature, signed } = await this.signer.signDirect(signerAddress, signDoc); return TxRaw.fromPartial({ diff --git a/packages/stargate/src/stargateclient.searchtx.spec.ts b/packages/stargate/src/stargateclient.searchtx.spec.ts index 02f0b1b4..465bb5af 100644 --- a/packages/stargate/src/stargateclient.searchtx.spec.ts +++ b/packages/stargate/src/stargateclient.searchtx.spec.ts @@ -74,7 +74,8 @@ async function sendTokens( }, ]; const gasLimit = 200000; - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit); + const feePayer = ""; + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit, feePayer); const chainId = await client.getChainId(); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); diff --git a/packages/stargate/src/stargateclient.spec.ts b/packages/stargate/src/stargateclient.spec.ts index 1b937656..3cc62456 100644 --- a/packages/stargate/src/stargateclient.spec.ts +++ b/packages/stargate/src/stargateclient.spec.ts @@ -364,7 +364,8 @@ describe("StargateClient", () => { const { accountNumber, sequence } = (await client.getSequence(address))!; const feeAmount = coins(2000, "ucosm"); const gasLimit = 200000; - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit); + const feePayer = ""; + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit, feePayer); const chainId = await client.getChainId(); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); @@ -421,7 +422,8 @@ describe("StargateClient", () => { const { accountNumber, sequence } = (await client.getSequence(address))!; const feeAmount = coins(2000, "ucosm"); const gasLimit = 200000; - const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit, sequence); + const feePayer = ""; + const authInfoBytes = makeAuthInfoBytes([{ pubkey, sequence }], feeAmount, gasLimit, feePayer, sequence); const chainId = await client.getChainId(); const signDoc = makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber); @@ -482,9 +484,10 @@ describe("StargateClient", () => { const chainId = await client.getChainId(); const feeAmount = coins(2000, "ucosm"); const gasLimit = 200000; + const feePayer = ""; const { accountNumber: accountNumber1, sequence: sequence1 } = (await client.getSequence(address))!; - const authInfoBytes1 = makeAuthInfoBytes([{ pubkey, sequence: sequence1 }], feeAmount, gasLimit); + const authInfoBytes1 = makeAuthInfoBytes([{ pubkey, sequence: sequence1 }], feeAmount, gasLimit, feePayer); const signDoc1 = makeSignDoc(txBodyBytes, authInfoBytes1, chainId, accountNumber1); const { signature: signature1 } = await wallet.signDirect(address, signDoc1); const txRaw1 = TxRaw.fromPartial({ @@ -498,7 +501,7 @@ describe("StargateClient", () => { assertIsDeliverTxSuccess(txResult); const { accountNumber: accountNumber2, sequence: sequence2 } = (await client.getSequence(address))!; - const authInfoBytes2 = makeAuthInfoBytes([{ pubkey, sequence: sequence2 }], feeAmount, gasLimit); + const authInfoBytes2 = makeAuthInfoBytes([{ pubkey, sequence: sequence2 }], feeAmount, gasLimit, feePayer); const signDoc2 = makeSignDoc(txBodyBytes, authInfoBytes2, chainId, accountNumber2); const { signature: signature2 } = await wallet.signDirect(address, signDoc2); const txRaw2 = TxRaw.fromPartial({ diff --git a/packages/stargate/src/testutils.spec.ts b/packages/stargate/src/testutils.spec.ts index 47f33fdc..b5ddb640 100644 --- a/packages/stargate/src/testutils.spec.ts +++ b/packages/stargate/src/testutils.spec.ts @@ -234,6 +234,7 @@ export class ModifyingDirectSecp256k1HdWallet extends DirectSecp256k1HdWallet { })); const modifiedFeeAmount = coins(3000, "ucosm"); const modifiedGasLimit = 333333; + const modifiedFeePayer = ""; const modifiedSignDoc = { ...signDoc, bodyBytes: Uint8Array.from(TxBody.encode(modifiedTxBody).finish()), @@ -241,6 +242,7 @@ export class ModifyingDirectSecp256k1HdWallet extends DirectSecp256k1HdWallet { signers, modifiedFeeAmount, modifiedGasLimit, + modifiedFeePayer, SignMode.SIGN_MODE_DIRECT, ), };