algosdk 1.24.1 → 2.1.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.LICENSE.txt +0 -18
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/abi/abi_type.js +6 -5
- package/dist/cjs/abi/abi_type.js.map +1 -1
- package/dist/cjs/bid.js +6 -5
- package/dist/cjs/bid.js.map +1 -1
- package/dist/cjs/client/client.js +4 -3
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/client/kmd.js +12 -11
- package/dist/cjs/client/kmd.js.map +1 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js +2 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +17 -1
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/compile.js +2 -1
- package/dist/cjs/client/v2/algod/compile.js.map +1 -1
- package/dist/cjs/client/v2/algod/disassemble.js +46 -0
- package/dist/cjs/client/v2/algod/disassemble.js.map +1 -0
- package/dist/cjs/client/v2/algod/dryrun.js +2 -1
- package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +2 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +182 -143
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js +2 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/cjs/client/v2/basemodel.js +3 -2
- package/dist/cjs/client/v2/basemodel.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +2 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +2 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +0 -7
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +39 -38
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/composer.js +7 -6
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/dryrun.js +22 -12
- package/dist/cjs/dryrun.js.map +1 -1
- package/dist/cjs/encoding/address.js +2 -1
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/encoding/bigint.js +2 -1
- package/dist/cjs/encoding/bigint.js.map +1 -1
- package/dist/cjs/encoding/uint64.js +14 -8
- package/dist/cjs/encoding/uint64.js.map +1 -1
- package/dist/cjs/group.js +6 -5
- package/dist/cjs/group.js.map +1 -1
- package/dist/cjs/logicsig.js +24 -21
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +8 -9
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/makeTxn.js +1 -193
- package/dist/cjs/makeTxn.js.map +1 -1
- package/dist/cjs/multisig.js +6 -5
- package/dist/cjs/multisig.js.map +1 -1
- package/dist/cjs/transaction.js +64 -63
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +0 -3
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/utils/utils.js +5 -1
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/esm/abi/abi_type.js +1 -0
- package/dist/esm/abi/abi_type.js.map +1 -1
- package/dist/esm/bid.js +1 -0
- package/dist/esm/bid.js.map +1 -1
- package/dist/esm/client/client.js +1 -0
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/client/kmd.js +1 -0
- package/dist/esm/client/kmd.js.map +1 -1
- package/dist/esm/client/urlTokenBaseHTTPClient.js +1 -0
- package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +17 -1
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/compile.js +1 -0
- package/dist/esm/client/v2/algod/compile.js.map +1 -1
- package/dist/esm/client/v2/algod/disassemble.js +38 -0
- package/dist/esm/client/v2/algod/disassemble.js.map +1 -0
- package/dist/esm/client/v2/algod/dryrun.js +1 -0
- package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js +1 -0
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +161 -120
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/algod/sendRawTransaction.js +1 -0
- package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/esm/client/v2/basemodel.js +1 -0
- package/dist/esm/client/v2/basemodel.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +1 -0
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +1 -0
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +0 -7
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +1 -0
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/composer.js +5 -4
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/dryrun.js +17 -7
- package/dist/esm/dryrun.js.map +1 -1
- package/dist/esm/encoding/address.js +1 -0
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/encoding/bigint.js +1 -0
- package/dist/esm/encoding/bigint.js.map +1 -1
- package/dist/esm/encoding/uint64.js +14 -8
- package/dist/esm/encoding/uint64.js.map +1 -1
- package/dist/esm/group.js +1 -0
- package/dist/esm/group.js.map +1 -1
- package/dist/esm/logicsig.js +15 -12
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +2 -4
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/makeTxn.js +0 -185
- package/dist/esm/makeTxn.js.map +1 -1
- package/dist/esm/multisig.js +1 -0
- package/dist/esm/multisig.js.map +1 -1
- package/dist/esm/transaction.js +1 -0
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +0 -3
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/utils/utils.js +5 -1
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/types/client/v2/algod/algod.d.ts +15 -1
- package/dist/types/client/v2/algod/disassemble.d.ts +20 -0
- package/dist/types/client/v2/algod/models/types.d.ts +122 -67
- package/dist/types/client/v2/basemodel.d.ts +0 -3
- package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +0 -4
- package/dist/types/composer.d.ts +7 -1
- package/dist/types/logicsig.d.ts +10 -10
- package/dist/types/main.d.ts +1 -3
- package/dist/types/makeTxn.d.ts +1 -147
- package/dist/types/types/transactions/encoded.d.ts +1 -16
- package/package.json +2 -3
- package/src/abi/abi_type.ts +1 -0
- package/src/bid.ts +1 -0
- package/src/client/client.ts +1 -0
- package/src/client/kmd.ts +1 -0
- package/src/client/urlTokenBaseHTTPClient.ts +1 -0
- package/src/client/v2/algod/algod.ts +19 -2
- package/src/client/v2/algod/compile.ts +1 -0
- package/src/client/v2/algod/disassemble.ts +46 -0
- package/src/client/v2/algod/dryrun.ts +1 -0
- package/src/client/v2/algod/getApplicationBoxByName.ts +1 -0
- package/src/client/v2/algod/models/types.ts +319 -249
- package/src/client/v2/algod/sendRawTransaction.ts +1 -0
- package/src/client/v2/basemodel.ts +2 -0
- package/src/client/v2/indexer/lookupAccountTransactions.ts +1 -0
- package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +1 -0
- package/src/client/v2/indexer/lookupAssetTransactions.ts +0 -8
- package/src/client/v2/indexer/models/types.ts +1 -0
- package/src/composer.ts +16 -3
- package/src/dryrun.ts +14 -13
- package/src/encoding/address.ts +1 -0
- package/src/encoding/bigint.ts +2 -0
- package/src/encoding/uint64.ts +16 -10
- package/src/group.ts +1 -0
- package/src/logicsig.ts +26 -13
- package/src/main.ts +3 -5
- package/src/makeTxn.ts +0 -421
- package/src/multisig.ts +1 -0
- package/src/transaction.ts +1 -0
- package/src/types/transactions/encoded.ts +2 -17
- package/src/utils/utils.ts +3 -0
- package/dist/cjs/client/algod.js +0 -295
- package/dist/cjs/client/algod.js.map +0 -1
- package/dist/cjs/logic/langspec.json +0 -2014
- package/dist/cjs/logic/logic.js +0 -262
- package/dist/cjs/logic/logic.js.map +0 -1
- package/dist/cjs/logicTemplates/dynamicfee.js +0 -192
- package/dist/cjs/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/cjs/logicTemplates/htlc.js +0 -145
- package/dist/cjs/logicTemplates/htlc.js.map +0 -1
- package/dist/cjs/logicTemplates/index.js +0 -19
- package/dist/cjs/logicTemplates/index.js.map +0 -1
- package/dist/cjs/logicTemplates/limitorder.js +0 -167
- package/dist/cjs/logicTemplates/limitorder.js.map +0 -1
- package/dist/cjs/logicTemplates/periodicpayment.js +0 -163
- package/dist/cjs/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/cjs/logicTemplates/split.js +0 -154
- package/dist/cjs/logicTemplates/split.js.map +0 -1
- package/dist/cjs/logicTemplates/templates.js +0 -67
- package/dist/cjs/logicTemplates/templates.js.map +0 -1
- package/dist/esm/client/algod.js +0 -295
- package/dist/esm/client/algod.js.map +0 -1
- package/dist/esm/logic/langspec.json +0 -2014
- package/dist/esm/logic/logic.js +0 -249
- package/dist/esm/logic/logic.js.map +0 -1
- package/dist/esm/logicTemplates/dynamicfee.js +0 -192
- package/dist/esm/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/esm/logicTemplates/htlc.js +0 -145
- package/dist/esm/logicTemplates/htlc.js.map +0 -1
- package/dist/esm/logicTemplates/index.js +0 -19
- package/dist/esm/logicTemplates/index.js.map +0 -1
- package/dist/esm/logicTemplates/limitorder.js +0 -167
- package/dist/esm/logicTemplates/limitorder.js.map +0 -1
- package/dist/esm/logicTemplates/periodicpayment.js +0 -163
- package/dist/esm/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/esm/logicTemplates/split.js +0 -154
- package/dist/esm/logicTemplates/split.js.map +0 -1
- package/dist/esm/logicTemplates/templates.js +0 -67
- package/dist/esm/logicTemplates/templates.js.map +0 -1
- package/dist/types/client/algod.d.ts +0 -162
- package/dist/types/logic/logic.d.ts +0 -45
- package/dist/types/logicTemplates/dynamicfee.d.ts +0 -59
- package/dist/types/logicTemplates/htlc.d.ts +0 -51
- package/dist/types/logicTemplates/index.d.ts +0 -16
- package/dist/types/logicTemplates/limitorder.d.ts +0 -70
- package/dist/types/logicTemplates/periodicpayment.d.ts +0 -58
- package/dist/types/logicTemplates/split.d.ts +0 -57
- package/dist/types/logicTemplates/templates.d.ts +0 -6
- package/src/client/algod.js +0 -365
- package/src/logic/langspec.json +0 -2014
- package/src/logic/logic.ts +0 -316
- package/src/logicTemplates/dynamicfee.js +0 -219
- package/src/logicTemplates/htlc.js +0 -165
- package/src/logicTemplates/index.js +0 -20
- package/src/logicTemplates/limitorder.js +0 -227
- package/src/logicTemplates/periodicpayment.js +0 -208
- package/src/logicTemplates/split.js +0 -208
- package/src/logicTemplates/templates.js +0 -78
|
@@ -176,14 +176,6 @@ export default class LookupAssetTransactions extends JSONRequest {
|
|
|
176
176
|
return this;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
/**
|
|
180
|
-
* @deprecated Redundant query parameter. Asset ID is already passed into the method.
|
|
181
|
-
*/
|
|
182
|
-
assetID(id: number) {
|
|
183
|
-
this.query['asset-id'] = id;
|
|
184
|
-
return this;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
179
|
/**
|
|
188
180
|
* Maximum number of results to return.
|
|
189
181
|
*
|
package/src/composer.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import {
|
|
2
3
|
ABIType,
|
|
3
4
|
ABITupleType,
|
|
@@ -202,6 +203,9 @@ export class AtomicTransactionComposer {
|
|
|
202
203
|
numLocalInts,
|
|
203
204
|
numLocalByteSlices,
|
|
204
205
|
extraPages,
|
|
206
|
+
appAccounts,
|
|
207
|
+
appForeignApps,
|
|
208
|
+
appForeignAssets,
|
|
205
209
|
boxes,
|
|
206
210
|
note,
|
|
207
211
|
lease,
|
|
@@ -234,6 +238,12 @@ export class AtomicTransactionComposer {
|
|
|
234
238
|
numLocalByteSlices?: number;
|
|
235
239
|
/** The number of extra pages to allocate for the application's programs. Only set this if this is an application creation call. If omitted, defaults to 0. */
|
|
236
240
|
extraPages?: number;
|
|
241
|
+
/** Array of Address strings that represent external accounts supplied to this application. If accounts are provided here, the accounts specified in the method args will appear after these. */
|
|
242
|
+
appAccounts?: string[];
|
|
243
|
+
/** Array of App ID numbers that represent external apps supplied to this application. If apps are provided here, the apps specified in the method args will appear after these. */
|
|
244
|
+
appForeignApps?: number[];
|
|
245
|
+
/** Array of Asset ID numbers that represent external assets supplied to this application. If assets are provided here, the assets specified in the method args will appear after these. */
|
|
246
|
+
appForeignAssets?: number[];
|
|
237
247
|
/** The box references for this application call */
|
|
238
248
|
boxes?: BoxReference[];
|
|
239
249
|
/** The note value for this application call */
|
|
@@ -370,9 +380,12 @@ export class AtomicTransactionComposer {
|
|
|
370
380
|
}
|
|
371
381
|
|
|
372
382
|
const resolvedRefIndexes: number[] = [];
|
|
373
|
-
const foreignAccounts: string[] =
|
|
374
|
-
|
|
375
|
-
const
|
|
383
|
+
const foreignAccounts: string[] =
|
|
384
|
+
appAccounts == null ? [] : appAccounts.slice();
|
|
385
|
+
const foreignApps: number[] =
|
|
386
|
+
appForeignApps == null ? [] : appForeignApps.slice();
|
|
387
|
+
const foreignAssets: number[] =
|
|
388
|
+
appForeignAssets == null ? [] : appForeignAssets.slice();
|
|
376
389
|
for (let i = 0; i < refArgTypes.length; i++) {
|
|
377
390
|
const refType = refArgTypes[i];
|
|
378
391
|
const refValue = refArgValues[i];
|
package/src/dryrun.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import AlgodClient from './client/v2/algod/algod';
|
|
2
3
|
import {
|
|
3
4
|
AccountStateDelta,
|
|
@@ -92,22 +93,22 @@ export async function createDryrun({
|
|
|
92
93
|
// Create application,
|
|
93
94
|
if (t.txn.appIndex === undefined || t.txn.appIndex === 0) {
|
|
94
95
|
appInfos.push(
|
|
95
|
-
new Application(
|
|
96
|
-
defaultAppId,
|
|
97
|
-
new ApplicationParams({
|
|
96
|
+
new Application({
|
|
97
|
+
id: defaultAppId,
|
|
98
|
+
params: new ApplicationParams({
|
|
98
99
|
creator: encodeAddress(t.txn.from.publicKey),
|
|
99
100
|
approvalProgram: t.txn.appApprovalProgram,
|
|
100
101
|
clearStateProgram: t.txn.appClearProgram,
|
|
101
|
-
localStateSchema: new ApplicationStateSchema(
|
|
102
|
-
t.txn.appLocalInts,
|
|
103
|
-
t.txn.appLocalByteSlices
|
|
104
|
-
),
|
|
105
|
-
globalStateSchema: new ApplicationStateSchema(
|
|
106
|
-
t.txn.appGlobalInts,
|
|
107
|
-
t.txn.appGlobalByteSlices
|
|
108
|
-
),
|
|
109
|
-
})
|
|
110
|
-
)
|
|
102
|
+
localStateSchema: new ApplicationStateSchema({
|
|
103
|
+
numUint: t.txn.appLocalInts,
|
|
104
|
+
numByteSlice: t.txn.appLocalByteSlices,
|
|
105
|
+
}),
|
|
106
|
+
globalStateSchema: new ApplicationStateSchema({
|
|
107
|
+
numUint: t.txn.appGlobalInts,
|
|
108
|
+
numByteSlice: t.txn.appGlobalByteSlices,
|
|
109
|
+
}),
|
|
110
|
+
}),
|
|
111
|
+
})
|
|
111
112
|
);
|
|
112
113
|
} else {
|
|
113
114
|
apps.push(t.txn.appIndex);
|
package/src/encoding/address.ts
CHANGED
package/src/encoding/bigint.ts
CHANGED
package/src/encoding/uint64.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { concatArrays } from '../utils/utils';
|
|
2
|
+
|
|
3
|
+
// NOTE: at the moment we specifically do not use Buffer.writeBigUInt64BE and
|
|
4
|
+
// Buffer.readBigUInt64BE. This is because projects using webpack v4
|
|
5
|
+
// automatically include an old version of the npm `buffer` package (v4.9.2 at
|
|
6
|
+
// the time of writing), and this old version does not have these methods.
|
|
7
|
+
|
|
1
8
|
/**
|
|
2
9
|
* encodeUint64 converts an integer to its binary representation.
|
|
3
10
|
* @param num - The number to convert. This must be an unsigned integer less than
|
|
@@ -12,11 +19,11 @@ export function encodeUint64(num: number | bigint) {
|
|
|
12
19
|
throw new Error('Input is not a 64-bit unsigned integer');
|
|
13
20
|
}
|
|
14
21
|
|
|
15
|
-
const
|
|
22
|
+
const encoding = new Uint8Array(8);
|
|
23
|
+
const view = new DataView(encoding.buffer);
|
|
24
|
+
view.setBigUint64(0, BigInt(num));
|
|
16
25
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return new Uint8Array(buf);
|
|
26
|
+
return encoding;
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
/**
|
|
@@ -59,13 +66,12 @@ export function decodeUint64(data: any, decodingMode: any = 'safe') {
|
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
// insert 0s at the beginning if data is smaller than 8 bytes
|
|
62
|
-
const padding =
|
|
63
|
-
padding
|
|
64
|
-
|
|
65
|
-
const buf = Buffer.concat([padding, Buffer.from(data)]);
|
|
69
|
+
const padding = new Uint8Array(8 - data.byteLength);
|
|
70
|
+
const encoding = concatArrays(padding, data);
|
|
71
|
+
const view = new DataView(encoding.buffer);
|
|
66
72
|
|
|
67
|
-
const num =
|
|
68
|
-
const isBig = num > Number.MAX_SAFE_INTEGER;
|
|
73
|
+
const num = view.getBigUint64(0);
|
|
74
|
+
const isBig = num > BigInt(Number.MAX_SAFE_INTEGER);
|
|
69
75
|
|
|
70
76
|
if (decodingMode === 'safe') {
|
|
71
77
|
if (isBig) {
|
package/src/group.ts
CHANGED
package/src/logicsig.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import * as nacl from './nacl/naclWrappers';
|
|
2
3
|
import * as address from './encoding/address';
|
|
3
4
|
import * as encoding from './encoding/encoding';
|
|
@@ -54,6 +55,8 @@ export function sanityCheckProgram(program: Uint8Array) {
|
|
|
54
55
|
|
|
55
56
|
/**
|
|
56
57
|
LogicSig implementation
|
|
58
|
+
|
|
59
|
+
LogicSig cannot sign transactions in all cases. Instead, use LogicSigAccount as a safe, general purpose signing mechanism. Since LogicSig does not track the provided signature's public key, LogicSig cannot sign transactions when delegated to a non-multisig account _and_ the sender is not the delegating account.
|
|
57
60
|
*/
|
|
58
61
|
export class LogicSig implements LogicSigStorageStructure {
|
|
59
62
|
tag = Buffer.from('Program');
|
|
@@ -375,19 +378,6 @@ export class LogicSigAccount {
|
|
|
375
378
|
}
|
|
376
379
|
}
|
|
377
380
|
|
|
378
|
-
/**
|
|
379
|
-
* makeLogicSig creates LogicSig object from program and arguments
|
|
380
|
-
*
|
|
381
|
-
* @deprecated Use new LogicSigAccount(...) instead
|
|
382
|
-
*
|
|
383
|
-
* @param program - Program to make LogicSig from
|
|
384
|
-
* @param args - Arguments as array of Uint8Array
|
|
385
|
-
* @returns LogicSig object
|
|
386
|
-
*/
|
|
387
|
-
export function makeLogicSig(program: Uint8Array, args?: Uint8Array[]) {
|
|
388
|
-
return new LogicSig(program, args);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
381
|
function signLogicSigTransactionWithAddress(
|
|
392
382
|
txn: txnBuilder.Transaction,
|
|
393
383
|
lsig: LogicSig,
|
|
@@ -506,6 +496,29 @@ export function tealSign(
|
|
|
506
496
|
return nacl.sign(toBeSigned, sk);
|
|
507
497
|
}
|
|
508
498
|
|
|
499
|
+
/**
|
|
500
|
+
* verifyTealSign verifies a signature as would the ed25519verify opcode
|
|
501
|
+
* @param data - buffer with original signed data
|
|
502
|
+
* @param programHash - string representation of teal program hash (= contract address for LogicSigs)
|
|
503
|
+
* @param sig - uint8array with the signature to verify (produced by tealSign/tealSignFromProgram)
|
|
504
|
+
* @param pk - uint8array with public key to verify against
|
|
505
|
+
*/
|
|
506
|
+
export function verifyTealSign(
|
|
507
|
+
data: Uint8Array | Buffer,
|
|
508
|
+
programHash: string,
|
|
509
|
+
sig: Uint8Array,
|
|
510
|
+
pk: Uint8Array
|
|
511
|
+
) {
|
|
512
|
+
const parts = utils.concatArrays(
|
|
513
|
+
address.decodeAddress(programHash).publicKey,
|
|
514
|
+
data
|
|
515
|
+
);
|
|
516
|
+
const toBeSigned = Buffer.from(
|
|
517
|
+
utils.concatArrays(SIGN_PROGRAM_DATA_PREFIX, parts)
|
|
518
|
+
);
|
|
519
|
+
return nacl.verify(toBeSigned, sig, pk);
|
|
520
|
+
}
|
|
521
|
+
|
|
509
522
|
/**
|
|
510
523
|
* tealSignFromProgram creates a signature compatible with ed25519verify opcode from raw program bytes
|
|
511
524
|
* @param sk - uint8array with secret key
|
package/src/main.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import * as nacl from './nacl/naclWrappers';
|
|
2
3
|
import * as address from './encoding/address';
|
|
3
4
|
import * as encoding from './encoding/encoding';
|
|
4
5
|
import * as txnBuilder from './transaction';
|
|
5
|
-
import * as LogicTemplatesCommonJSExport from './logicTemplates';
|
|
6
6
|
import Bid, { BidOptions } from './bid';
|
|
7
7
|
import * as convert from './convert';
|
|
8
8
|
import * as utils from './utils/utils';
|
|
@@ -117,7 +117,6 @@ export const ERROR_INVALID_MICROALGOS = new Error(
|
|
|
117
117
|
convert.INVALID_MICROALGOS_ERROR_MSG
|
|
118
118
|
);
|
|
119
119
|
|
|
120
|
-
export * from './client/algod';
|
|
121
120
|
export { default as Algodv2 } from './client/v2/algod/algod';
|
|
122
121
|
export { default as Kmd } from './client/kmd';
|
|
123
122
|
export { default as IntDecoding } from './types/intDecoding';
|
|
@@ -155,13 +154,14 @@ export {
|
|
|
155
154
|
} from './convert';
|
|
156
155
|
export { computeGroupID, assignGroupID } from './group';
|
|
157
156
|
export {
|
|
157
|
+
LogicSig,
|
|
158
158
|
LogicSigAccount,
|
|
159
|
-
makeLogicSig,
|
|
160
159
|
signLogicSigTransaction,
|
|
161
160
|
signLogicSigTransactionObject,
|
|
162
161
|
logicSigFromByte,
|
|
163
162
|
tealSign,
|
|
164
163
|
tealSignFromProgram,
|
|
164
|
+
verifyTealSign,
|
|
165
165
|
} from './logicsig';
|
|
166
166
|
export {
|
|
167
167
|
signMultisigTransaction,
|
|
@@ -174,8 +174,6 @@ export {
|
|
|
174
174
|
} from './multisig';
|
|
175
175
|
export { SourceMap } from './logic/sourcemap';
|
|
176
176
|
|
|
177
|
-
export const LogicTemplates = LogicTemplatesCommonJSExport.default;
|
|
178
|
-
|
|
179
177
|
export * from './dryrun';
|
|
180
178
|
export * from './makeTxn';
|
|
181
179
|
export * from './transaction';
|