Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions docs/code/classes/types_composer.TransactionComposer.md
Original file line number Diff line number Diff line change
Expand Up @@ -1437,7 +1437,7 @@ const { atc, transactions, methodCalls } = await composer.build()

#### Defined in

[src/types/composer.ts:1885](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1885)
[src/types/composer.ts:1886](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1886)

___

Expand Down Expand Up @@ -1765,7 +1765,7 @@ The number of transactions currently added to this composer

#### Defined in

[src/types/composer.ts:1868](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1868)
[src/types/composer.ts:1869](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1869)

___

Expand Down Expand Up @@ -1795,7 +1795,7 @@ An alias for `composer.send(params)`.

#### Defined in

[src/types/composer.ts:1981](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1981)
[src/types/composer.ts:1982](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1982)

___

Expand All @@ -1820,7 +1820,7 @@ const { atc, transactions, methodCalls } = await composer.rebuild()

#### Defined in

[src/types/composer.ts:1924](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1924)
[src/types/composer.ts:1925](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1925)

___

Expand Down Expand Up @@ -1852,7 +1852,7 @@ const result = await composer.send({

#### Defined in

[src/types/composer.ts:1940](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1940)
[src/types/composer.ts:1941](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1941)

___

Expand All @@ -1876,7 +1876,7 @@ const result = await composer.simulate()

#### Defined in

[src/types/composer.ts:1993](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1993)
[src/types/composer.ts:1994](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1994)

▸ **simulate**(`options`): `Promise`\<[`SendAtomicTransactionComposerResults`](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md) & \{ `simulateResponse`: `SimulateResponse` }\>

Expand Down Expand Up @@ -1910,7 +1910,7 @@ const result = await composer.simulate({

#### Defined in

[src/types/composer.ts:2004](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2004)
[src/types/composer.ts:2005](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2005)

▸ **simulate**(`options`): `Promise`\<[`SendAtomicTransactionComposerResults`](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md) & \{ `simulateResponse`: `SimulateResponse` }\>

Expand Down Expand Up @@ -1945,7 +1945,7 @@ const result = await composer.simulate({

#### Defined in

[src/types/composer.ts:2017](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2017)
[src/types/composer.ts:2018](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2018)

___

Expand All @@ -1971,4 +1971,4 @@ The binary encoded transaction note

#### Defined in

[src/types/composer.ts:2094](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2094)
[src/types/composer.ts:2095](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2095)
46 changes: 45 additions & 1 deletion src/types/app-client.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ import algosdk, {
Account,
Address,
Algodv2,
getApplicationAddress,
Indexer,
OnApplicationComplete,
TransactionSigner,
TransactionType,
getApplicationAddress,
} from 'algosdk'
import invariant from 'tiny-invariant'
import { afterEach, beforeAll, beforeEach, describe, expect, test } from 'vitest'
Expand Down Expand Up @@ -929,4 +929,48 @@ describe('app-client', () => {
expect(clonedAppClient.appId).toBe(appClient.appId)
expect(clonedAppClient.appName).toBe(appSpec.contract.name)
})

test('simulated transaction group result should match sent transaction group result', async () => {
const { testAccount } = localnet.context
const appClient = await deploy(testAccount)

const appCall1Params = {
sender: testAccount,
appId: appClient.appId,
method: algosdk.ABIMethod.fromSignature('set_global(uint64,uint64,string,byte[4])void'),
args: [1, 2, 'asdf', new Uint8Array([1, 2, 3, 4])],
}

const paymentParams = {
sender: testAccount,
receiver: testAccount,
amount: algo(0.01),
}

const appCall2Params = {
sender: testAccount,
appId: appClient.appId,
method: algosdk.ABIMethod.fromSignature('call_abi(string)string'),
args: ['test'],
}

const simulateResult = await appClient.algorand
.newGroup()
.addAppCallMethodCall(appCall1Params)
.addPayment(paymentParams)
.addAppCallMethodCall(appCall2Params)
.simulate({ skipSignatures: true })

const sendResult = await appClient.algorand
.newGroup()
.addAppCallMethodCall(appCall1Params)
.addPayment(paymentParams)
.addAppCallMethodCall(appCall2Params)
.send()

expect(simulateResult.transactions.length).toBe(sendResult.transactions.length)
expect(simulateResult.returns!.length).toBe(sendResult.returns!.length)
expect(simulateResult.returns![0]).toEqual(sendResult.returns![0])
expect(simulateResult.returns![1]).toEqual(sendResult.returns![1])
})
})
7 changes: 4 additions & 3 deletions src/types/composer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1845,14 +1845,15 @@ export class TransactionComposer {
? await this.buildMethodCall(txn, suggestedParams, false)
: []

transactionsWithSigner.forEach((ts, idx) => {
transactionsWithSigner.forEach((ts) => {
transactions.push(ts.txn)
const groupIdx = transactions.length - 1

if (ts.signer && ts.signer !== TransactionComposer.NULL_SIGNER) {
signers.set(idx, ts.signer)
signers.set(groupIdx, ts.signer)
}
if ('context' in ts && ts.context.abiMethod) {
methodCalls.set(idx, ts.context.abiMethod)
methodCalls.set(groupIdx, ts.context.abiMethod)
}
})
}
Expand Down