algosdk 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +16 -0
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +120 -1
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/algod/simulateTransaction.js +88 -0
- package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -0
- package/dist/cjs/composer.js +69 -18
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/encoding/encoding.js +14 -3
- package/dist/cjs/encoding/encoding.js.map +1 -1
- package/dist/cjs/signer.js +17 -1
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/transaction.js +17 -1
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +16 -0
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +116 -0
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/algod/simulateTransaction.js +57 -0
- package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -0
- package/dist/esm/composer.js +70 -19
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/encoding/encoding.js +12 -2
- package/dist/esm/encoding/encoding.js.map +1 -1
- package/dist/esm/signer.js +15 -0
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/transaction.js +15 -0
- package/dist/esm/transaction.js.map +1 -1
- package/dist/types/client/v2/algod/algod.d.ts +14 -0
- package/dist/types/client/v2/algod/models/types.d.ts +103 -0
- package/dist/types/client/v2/algod/simulateTransaction.d.ts +19 -0
- package/dist/types/composer.d.ts +28 -1
- package/dist/types/encoding/encoding.d.ts +7 -0
- package/dist/types/signer.d.ts +5 -0
- package/dist/types/transaction.d.ts +9 -0
- package/dist/types/types/transactions/builder.d.ts +1 -1
- package/dist/types/types/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/client/v2/algod/algod.ts +17 -0
- package/src/client/v2/algod/models/types.ts +222 -0
- package/src/client/v2/algod/simulateTransaction.ts +74 -0
- package/src/composer.ts +114 -31
- package/src/encoding/encoding.ts +13 -2
- package/src/signer.ts +18 -1
- package/src/transaction.ts +18 -0
- package/src/types/transactions/builder.ts +4 -4
- package/src/types/utils.ts +1 -1
|
@@ -28,6 +28,17 @@ function containsEmpty(obj) {
|
|
|
28
28
|
}
|
|
29
29
|
return { containsEmpty: false, firstEmptyKey: undefined };
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* rawEncode encodes objects using msgpack, regardless of whether there are
|
|
33
|
+
* empty or 0 value fields.
|
|
34
|
+
* @param obj - a dictionary to be encoded. May or may not contain empty or 0 values.
|
|
35
|
+
* @returns msgpack representation of the object
|
|
36
|
+
*/
|
|
37
|
+
export function rawEncode(obj) {
|
|
38
|
+
// enable the canonical option
|
|
39
|
+
const options = { sortKeys: true };
|
|
40
|
+
return msgpack.encode(obj, options);
|
|
41
|
+
}
|
|
31
42
|
/**
|
|
32
43
|
* encode encodes objects using msgpack
|
|
33
44
|
* @param obj - a dictionary to be encoded. Must not contain empty or 0 values.
|
|
@@ -41,8 +52,7 @@ export function encode(obj) {
|
|
|
41
52
|
throw new Error(ERROR_CONTAINS_EMPTY_STRING + emptyCheck.firstEmptyKey);
|
|
42
53
|
}
|
|
43
54
|
// enable the canonical option
|
|
44
|
-
|
|
45
|
-
return msgpack.encode(obj, options);
|
|
55
|
+
return rawEncode(obj);
|
|
46
56
|
}
|
|
47
57
|
export function decode(buffer) {
|
|
48
58
|
return msgpack.decode(buffer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/encoding/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;MAUM;AAEN,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,SAAS;AACT,MAAM,CAAC,MAAM,2BAA2B,GACtC,6FAA6F,CAAC;AAEhG;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAA0C;IAC/D,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;aACpD;SACF;KACF;IACD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,GAA0C;IAC/D,yBAAyB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,aAAa,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;KACzE;IAED,8BAA8B;IAC9B,
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../src/encoding/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;MAUM;AAEN,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,SAAS;AACT,MAAM,CAAC,MAAM,2BAA2B,GACtC,6FAA6F,CAAC;AAEhG;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAA0C;IAC/D,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;aACpD;SACF;KACF;IACD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAA0C;IAClE,8BAA8B;IAC9B,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,GAA0C;IAC/D,yBAAyB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,aAAa,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;KACzE;IAED,8BAA8B;IAC9B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAyB;IAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/esm/signer.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { encodeUnsignedSimulateTransaction } from './transaction';
|
|
1
2
|
import { signLogicSigTransactionObject } from './logicsig';
|
|
2
3
|
import { signMultisigTransaction, mergeMultisigTransactions } from './multisig';
|
|
3
4
|
/**
|
|
@@ -45,6 +46,20 @@ export function makeMultiSigAccountTransactionSigner(msig, sks) {
|
|
|
45
46
|
return Promise.resolve(signed);
|
|
46
47
|
};
|
|
47
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a makeEmptyTransactionSigner that does not specify any signer or
|
|
51
|
+
* signing capabilities. This should only be used to simulate transactions.
|
|
52
|
+
*/
|
|
53
|
+
export function makeEmptyTransactionSigner() {
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
55
|
+
return (txnGroup, indexesToSign) => {
|
|
56
|
+
const unsigned = [];
|
|
57
|
+
for (const index of indexesToSign) {
|
|
58
|
+
unsigned.push(encodeUnsignedSimulateTransaction(txnGroup[index]));
|
|
59
|
+
}
|
|
60
|
+
return Promise.resolve(unsigned);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
64
|
* Check if a value conforms to the TransactionWithSigner structure.
|
|
50
65
|
* @param value - The value to check.
|
package/dist/esm/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAe,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAmB,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAehF;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAgB;IAEhB,OAAO,CAAC,QAAuB,EAAE,aAAuB,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAClD;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC,CAClD,OAAwB;IAExB,OAAO,CAAC,QAAuB,EAAE,aAAuB,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,6BAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAClD,IAAsB,EACtB,GAAiB;IAEjB,OAAO,CAAC,QAAuB,EAAE,aAAuB,EAAE,EAAE;QAC1D,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,WAAW,GAAiB,EAAE,CAAC;YAErC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;gBACpB,MAAM,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;YAED,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;SACrD;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,6DAA6D;IAC7D,OAAO,CAAC,QAAuB,EAAE,aAAuB,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnE;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAUD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAU;IAEV,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CACnC,CAAC;AACJ,CAAC"}
|
package/dist/esm/transaction.js
CHANGED
|
@@ -1042,6 +1042,21 @@ export class Transaction {
|
|
|
1042
1042
|
return JSON.stringify(this._getDictForDisplay());
|
|
1043
1043
|
}
|
|
1044
1044
|
}
|
|
1045
|
+
/**
|
|
1046
|
+
* encodeUnsignedSimulateTransaction takes a txnBuilder.Transaction object,
|
|
1047
|
+
* converts it into a SignedTransaction-like object, and converts it to a Buffer.
|
|
1048
|
+
*
|
|
1049
|
+
* Note: this function should only be used to simulate unsigned transactions.
|
|
1050
|
+
*
|
|
1051
|
+
* @param transactionObject - Transaction object to simulate.
|
|
1052
|
+
*/
|
|
1053
|
+
export function encodeUnsignedSimulateTransaction(transactionObject) {
|
|
1054
|
+
const objToEncode = {
|
|
1055
|
+
sig: null,
|
|
1056
|
+
txn: transactionObject.get_obj_for_encoding(),
|
|
1057
|
+
};
|
|
1058
|
+
return encoding.rawEncode(objToEncode);
|
|
1059
|
+
}
|
|
1045
1060
|
/**
|
|
1046
1061
|
* encodeUnsignedTransaction takes a completed txnBuilder.Transaction object, such as from the makeFoo
|
|
1047
1062
|
* family of transactions, and converts it to a Buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ import { AlgodTokenHeader, CustomTokenHeader } from '../../urlTokenBaseHTTPClien
|
|
|
28
28
|
import LightBlockHeaderProof from './lightBlockHeaderProof';
|
|
29
29
|
import StateProof from './stateproof';
|
|
30
30
|
import Disassemble from './disassemble';
|
|
31
|
+
import SimulateRawTransactions from './simulateTransaction';
|
|
31
32
|
/**
|
|
32
33
|
* Algod client connects an application to the Algorand blockchain. The algod client requires a valid algod REST endpoint IP address and algod token from an Algorand node that is connected to the network you plan to interact with.
|
|
33
34
|
*
|
|
@@ -467,4 +468,17 @@ export default class AlgodClient extends ServiceClient {
|
|
|
467
468
|
* @param round
|
|
468
469
|
*/
|
|
469
470
|
getStateProof(round: number): StateProof;
|
|
471
|
+
/**
|
|
472
|
+
* Simulate a list of a signed transaction objects being sent to the network.
|
|
473
|
+
*
|
|
474
|
+
* #### Example
|
|
475
|
+
* ```typescript
|
|
476
|
+
* const resp = await client.simulateRawTransactions([signedTxn1, signedTxn2]).do();
|
|
477
|
+
* ```
|
|
478
|
+
*
|
|
479
|
+
* [Response data schema details](https://developer.algorand.org/docs/rest-apis/algod/v2/#post-v2transactionssimulate)
|
|
480
|
+
* @param stxOrStxs
|
|
481
|
+
* @category POST
|
|
482
|
+
*/
|
|
483
|
+
simulateRawTransactions(stxOrStxs: Uint8Array | Uint8Array[]): SimulateRawTransactions;
|
|
470
484
|
}
|
|
@@ -1413,6 +1413,109 @@ export declare class PostTransactionsResponse extends BaseModel {
|
|
|
1413
1413
|
});
|
|
1414
1414
|
static from_obj_for_encoding(data: Record<string, any>): PostTransactionsResponse;
|
|
1415
1415
|
}
|
|
1416
|
+
/**
|
|
1417
|
+
* Result of a transaction group simulation.
|
|
1418
|
+
*/
|
|
1419
|
+
export declare class SimulateResponse extends BaseModel {
|
|
1420
|
+
/**
|
|
1421
|
+
* The round immediately preceding this simulation. State changes through this
|
|
1422
|
+
* round were used to run this simulation.
|
|
1423
|
+
*/
|
|
1424
|
+
lastRound: number | bigint;
|
|
1425
|
+
/**
|
|
1426
|
+
* A result object for each transaction group that was simulated.
|
|
1427
|
+
*/
|
|
1428
|
+
txnGroups: SimulateTransactionGroupResult[];
|
|
1429
|
+
/**
|
|
1430
|
+
* The version of this response object.
|
|
1431
|
+
*/
|
|
1432
|
+
version: number | bigint;
|
|
1433
|
+
/**
|
|
1434
|
+
* Indicates whether the simulated transactions would have succeeded during an
|
|
1435
|
+
* actual submission. If any transaction fails or is missing a signature, this will
|
|
1436
|
+
* be false.
|
|
1437
|
+
*/
|
|
1438
|
+
wouldSucceed: boolean;
|
|
1439
|
+
/**
|
|
1440
|
+
* Creates a new `SimulateResponse` object.
|
|
1441
|
+
* @param lastRound - The round immediately preceding this simulation. State changes through this
|
|
1442
|
+
* round were used to run this simulation.
|
|
1443
|
+
* @param txnGroups - A result object for each transaction group that was simulated.
|
|
1444
|
+
* @param version - The version of this response object.
|
|
1445
|
+
* @param wouldSucceed - Indicates whether the simulated transactions would have succeeded during an
|
|
1446
|
+
* actual submission. If any transaction fails or is missing a signature, this will
|
|
1447
|
+
* be false.
|
|
1448
|
+
*/
|
|
1449
|
+
constructor({ lastRound, txnGroups, version, wouldSucceed, }: {
|
|
1450
|
+
lastRound: number | bigint;
|
|
1451
|
+
txnGroups: SimulateTransactionGroupResult[];
|
|
1452
|
+
version: number | bigint;
|
|
1453
|
+
wouldSucceed: boolean;
|
|
1454
|
+
});
|
|
1455
|
+
static from_obj_for_encoding(data: Record<string, any>): SimulateResponse;
|
|
1456
|
+
}
|
|
1457
|
+
/**
|
|
1458
|
+
* Simulation result for an atomic transaction group
|
|
1459
|
+
*/
|
|
1460
|
+
export declare class SimulateTransactionGroupResult extends BaseModel {
|
|
1461
|
+
/**
|
|
1462
|
+
* Simulation result for individual transactions
|
|
1463
|
+
*/
|
|
1464
|
+
txnResults: SimulateTransactionResult[];
|
|
1465
|
+
/**
|
|
1466
|
+
* If present, indicates which transaction in this group caused the failure. This
|
|
1467
|
+
* array represents the path to the failing transaction. Indexes are zero based,
|
|
1468
|
+
* the first element indicates the top-level transaction, and successive elements
|
|
1469
|
+
* indicate deeper inner transactions.
|
|
1470
|
+
*/
|
|
1471
|
+
failedAt?: (number | bigint)[];
|
|
1472
|
+
/**
|
|
1473
|
+
* If present, indicates that the transaction group failed and specifies why that
|
|
1474
|
+
* happened
|
|
1475
|
+
*/
|
|
1476
|
+
failureMessage?: string;
|
|
1477
|
+
/**
|
|
1478
|
+
* Creates a new `SimulateTransactionGroupResult` object.
|
|
1479
|
+
* @param txnResults - Simulation result for individual transactions
|
|
1480
|
+
* @param failedAt - If present, indicates which transaction in this group caused the failure. This
|
|
1481
|
+
* array represents the path to the failing transaction. Indexes are zero based,
|
|
1482
|
+
* the first element indicates the top-level transaction, and successive elements
|
|
1483
|
+
* indicate deeper inner transactions.
|
|
1484
|
+
* @param failureMessage - If present, indicates that the transaction group failed and specifies why that
|
|
1485
|
+
* happened
|
|
1486
|
+
*/
|
|
1487
|
+
constructor({ txnResults, failedAt, failureMessage, }: {
|
|
1488
|
+
txnResults: SimulateTransactionResult[];
|
|
1489
|
+
failedAt?: (number | bigint)[];
|
|
1490
|
+
failureMessage?: string;
|
|
1491
|
+
});
|
|
1492
|
+
static from_obj_for_encoding(data: Record<string, any>): SimulateTransactionGroupResult;
|
|
1493
|
+
}
|
|
1494
|
+
/**
|
|
1495
|
+
* Simulation result for an individual transaction
|
|
1496
|
+
*/
|
|
1497
|
+
export declare class SimulateTransactionResult extends BaseModel {
|
|
1498
|
+
/**
|
|
1499
|
+
* Details about a pending transaction. If the transaction was recently confirmed,
|
|
1500
|
+
* includes confirmation details like the round and reward details.
|
|
1501
|
+
*/
|
|
1502
|
+
txnResult: PendingTransactionResponse;
|
|
1503
|
+
/**
|
|
1504
|
+
* A boolean indicating whether this transaction is missing signatures
|
|
1505
|
+
*/
|
|
1506
|
+
missingSignature?: boolean;
|
|
1507
|
+
/**
|
|
1508
|
+
* Creates a new `SimulateTransactionResult` object.
|
|
1509
|
+
* @param txnResult - Details about a pending transaction. If the transaction was recently confirmed,
|
|
1510
|
+
* includes confirmation details like the round and reward details.
|
|
1511
|
+
* @param missingSignature - A boolean indicating whether this transaction is missing signatures
|
|
1512
|
+
*/
|
|
1513
|
+
constructor({ txnResult, missingSignature, }: {
|
|
1514
|
+
txnResult: PendingTransactionResponse;
|
|
1515
|
+
missingSignature?: boolean;
|
|
1516
|
+
});
|
|
1517
|
+
static from_obj_for_encoding(data: Record<string, any>): SimulateTransactionResult;
|
|
1518
|
+
}
|
|
1416
1519
|
/**
|
|
1417
1520
|
* Represents a state proof and its corresponding message
|
|
1418
1521
|
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import HTTPClient from '../../client';
|
|
2
|
+
import JSONRequest from '../jsonrequest';
|
|
3
|
+
import { SimulateResponse } from './models/types';
|
|
4
|
+
/**
|
|
5
|
+
* Sets the default header (if not previously set) for simulating a raw
|
|
6
|
+
* transaction.
|
|
7
|
+
* @param headers - A headers object
|
|
8
|
+
*/
|
|
9
|
+
export declare function setSimulateTransactionsHeaders(headers?: {}): {};
|
|
10
|
+
/**
|
|
11
|
+
* Simulates signed txns.
|
|
12
|
+
*/
|
|
13
|
+
export default class SimulateRawTransactions extends JSONRequest<SimulateResponse, Uint8Array> {
|
|
14
|
+
private txnBytesToPost;
|
|
15
|
+
constructor(c: HTTPClient, stxOrStxs: Uint8Array | Uint8Array[]);
|
|
16
|
+
path(): string;
|
|
17
|
+
do(headers?: {}): Promise<SimulateResponse>;
|
|
18
|
+
prepare(body: Uint8Array): SimulateResponse;
|
|
19
|
+
}
|
package/dist/types/composer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ABIMethod, ABIValue } from './abi';
|
|
2
2
|
import Algodv2 from './client/v2/algod/algod';
|
|
3
|
+
import { SimulateResponse } from './client/v2/algod/models/types';
|
|
3
4
|
import { TransactionSigner, TransactionWithSigner } from './signer';
|
|
4
5
|
import { BoxReference, OnApplicationComplete, SuggestedParams } from './types/transactions/base';
|
|
5
6
|
export declare type ABIArgument = ABIValue | TransactionWithSigner;
|
|
@@ -149,6 +150,23 @@ export declare class AtomicTransactionComposer {
|
|
|
149
150
|
* @returns A promise that, upon success, resolves to a list of TxIDs of the submitted transactions.
|
|
150
151
|
*/
|
|
151
152
|
submit(client: Algodv2): Promise<string[]>;
|
|
153
|
+
/**
|
|
154
|
+
* Simulates the transaction group in the network.
|
|
155
|
+
*
|
|
156
|
+
* The composer will try to sign any transactions in the group, then simulate
|
|
157
|
+
* the results.
|
|
158
|
+
* Simulating the group will not change the composer's status.
|
|
159
|
+
*
|
|
160
|
+
* @param client - An Algodv2 client
|
|
161
|
+
*
|
|
162
|
+
* @returns A promise that, upon success, resolves to an object containing an
|
|
163
|
+
* array of results containing one element for each method call transaction
|
|
164
|
+
* in this group (ABIResult[]) and the SimulateResponse object.
|
|
165
|
+
*/
|
|
166
|
+
simulate(client: Algodv2): Promise<{
|
|
167
|
+
methodResults: ABIResult[];
|
|
168
|
+
simulateResponse: SimulateResponse;
|
|
169
|
+
}>;
|
|
152
170
|
/**
|
|
153
171
|
* Send the transaction group to the network and wait until it's committed to a block. An error
|
|
154
172
|
* will be thrown if submission or execution fails.
|
|
@@ -171,4 +189,13 @@ export declare class AtomicTransactionComposer {
|
|
|
171
189
|
txIDs: string[];
|
|
172
190
|
methodResults: ABIResult[];
|
|
173
191
|
}>;
|
|
192
|
+
/**
|
|
193
|
+
* Parses a single ABI Method transaction log into a ABI result object.
|
|
194
|
+
*
|
|
195
|
+
* @param method
|
|
196
|
+
* @param methodResult
|
|
197
|
+
* @param pendingInfo
|
|
198
|
+
* @returns An ABIResult object
|
|
199
|
+
*/
|
|
200
|
+
static parseMethodResponse(method: ABIMethod, methodResult: ABIResult, pendingInfo: Record<string, any>): ABIResult;
|
|
174
201
|
}
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* 5. Binary blob should be used for binary data and string for strings
|
|
11
11
|
* */
|
|
12
12
|
export declare const ERROR_CONTAINS_EMPTY_STRING = "The object contains empty or 0 values. First empty or 0 value encountered during encoding: ";
|
|
13
|
+
/**
|
|
14
|
+
* rawEncode encodes objects using msgpack, regardless of whether there are
|
|
15
|
+
* empty or 0 value fields.
|
|
16
|
+
* @param obj - a dictionary to be encoded. May or may not contain empty or 0 values.
|
|
17
|
+
* @returns msgpack representation of the object
|
|
18
|
+
*/
|
|
19
|
+
export declare function rawEncode(obj: Record<string | number | symbol, any>): Uint8Array;
|
|
13
20
|
/**
|
|
14
21
|
* encode encodes objects using msgpack
|
|
15
22
|
* @param obj - a dictionary to be encoded. Must not contain empty or 0 values.
|
package/dist/types/signer.d.ts
CHANGED
|
@@ -25,6 +25,11 @@ export declare function makeLogicSigAccountTransactionSigner(account: LogicSigAc
|
|
|
25
25
|
* @param sks - An array of private keys belonging to the msig which should sign the transactions.
|
|
26
26
|
*/
|
|
27
27
|
export declare function makeMultiSigAccountTransactionSigner(msig: MultisigMetadata, sks: Uint8Array[]): TransactionSigner;
|
|
28
|
+
/**
|
|
29
|
+
* Create a makeEmptyTransactionSigner that does not specify any signer or
|
|
30
|
+
* signing capabilities. This should only be used to simulate transactions.
|
|
31
|
+
*/
|
|
32
|
+
export declare function makeEmptyTransactionSigner(): TransactionSigner;
|
|
28
33
|
/** Represents an unsigned transactions and a signer that can authorize that transaction. */
|
|
29
34
|
export interface TransactionWithSigner {
|
|
30
35
|
/** An unsigned transaction */
|
|
@@ -140,6 +140,15 @@ export declare class Transaction implements TransactionStorageStructure {
|
|
|
140
140
|
prettyPrint(): void;
|
|
141
141
|
toString(): string;
|
|
142
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* encodeUnsignedSimulateTransaction takes a txnBuilder.Transaction object,
|
|
145
|
+
* converts it into a SignedTransaction-like object, and converts it to a Buffer.
|
|
146
|
+
*
|
|
147
|
+
* Note: this function should only be used to simulate unsigned transactions.
|
|
148
|
+
*
|
|
149
|
+
* @param transactionObject - Transaction object to simulate.
|
|
150
|
+
*/
|
|
151
|
+
export declare function encodeUnsignedSimulateTransaction(transactionObject: Transaction): Uint8Array;
|
|
143
152
|
/**
|
|
144
153
|
* encodeUnsignedTransaction takes a completed txnBuilder.Transaction object, such as from the makeFoo
|
|
145
154
|
* family of transactions, and converts it to a Buffer
|
|
@@ -21,7 +21,7 @@ export declare type TransactionBase = TransactionBaseWithoutSuggestedParams | Tr
|
|
|
21
21
|
* - A: Additional parameters on top of the base transaction parameters
|
|
22
22
|
* - O: A set of overwrites for transaction parameters
|
|
23
23
|
*/
|
|
24
|
-
export declare type ConstructTransaction<A = {}, O = {}> = DistributiveOverwrite<TransactionBase & A, O>;
|
|
24
|
+
export declare type ConstructTransaction<A = {}, O extends Partial<TransactionBase & A> = {}> = DistributiveOverwrite<TransactionBase & A, O>;
|
|
25
25
|
/**
|
|
26
26
|
* Only accept transaction objects that include suggestedParams as an object
|
|
27
27
|
*/
|
|
@@ -16,7 +16,7 @@ export declare type Overwrite<T, U extends Partial<T>> = Pick<T, Exclude<keyof T
|
|
|
16
16
|
/**
|
|
17
17
|
* Same as Overwrite, but will distribute the Overwrite over unions
|
|
18
18
|
*/
|
|
19
|
-
export declare type DistributiveOverwrite<T, K
|
|
19
|
+
export declare type DistributiveOverwrite<T, K extends Partial<T>> = T extends unknown ? Overwrite<T, K> : never;
|
|
20
20
|
/**
|
|
21
21
|
* Mark certain keys as prohibited
|
|
22
22
|
*/
|
package/package.json
CHANGED
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
import LightBlockHeaderProof from './lightBlockHeaderProof';
|
|
32
32
|
import StateProof from './stateproof';
|
|
33
33
|
import Disassemble from './disassemble';
|
|
34
|
+
import SimulateRawTransactions from './simulateTransaction';
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
37
|
* Algod client connects an application to the Algorand blockchain. The algod client requires a valid algod REST endpoint IP address and algod token from an Algorand node that is connected to the network you plan to interact with.
|
|
@@ -575,4 +576,20 @@ export default class AlgodClient extends ServiceClient {
|
|
|
575
576
|
getStateProof(round: number) {
|
|
576
577
|
return new StateProof(this.c, this.intDecoding, round);
|
|
577
578
|
}
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Simulate a list of a signed transaction objects being sent to the network.
|
|
582
|
+
*
|
|
583
|
+
* #### Example
|
|
584
|
+
* ```typescript
|
|
585
|
+
* const resp = await client.simulateRawTransactions([signedTxn1, signedTxn2]).do();
|
|
586
|
+
* ```
|
|
587
|
+
*
|
|
588
|
+
* [Response data schema details](https://developer.algorand.org/docs/rest-apis/algod/v2/#post-v2transactionssimulate)
|
|
589
|
+
* @param stxOrStxs
|
|
590
|
+
* @category POST
|
|
591
|
+
*/
|
|
592
|
+
simulateRawTransactions(stxOrStxs: Uint8Array | Uint8Array[]) {
|
|
593
|
+
return new SimulateRawTransactions(this.c, stxOrStxs);
|
|
594
|
+
}
|
|
578
595
|
}
|