Skip to content

Commit 7086c0c

Browse files
authored
Merge pull request #31 from algorandfoundation/fix/cjs-import
fix: update import statements to avoid having to inline node modules
2 parents b266b30 + b7ef7aa commit 7086c0c

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

src/abi-metadata.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { BaseContract, Contract } from '@algorandfoundation/algorand-typescript'
22
import { AbiMethodConfig, BareMethodConfig, CreateOptions, OnCompleteActionStr } from '@algorandfoundation/algorand-typescript/arc4'
3-
import { sha512_256 as js_sha512_256 } from 'js-sha512'
3+
import js_sha512 from 'js-sha512'
44
import { TypeInfo } from './encoders'
55
import { getArc4TypeName as getArc4TypeNameForARC4Encoded } from './impl/encoded-types'
66
import { DeliberateAny } from './typescript-helpers'
@@ -79,7 +79,7 @@ export const getArc4Signature = (metadata: AbiMetadata): string => {
7979
}
8080

8181
export const getArc4Selector = (metadata: AbiMetadata): Uint8Array => {
82-
const hash = js_sha512_256.array(getArc4Signature(metadata))
82+
const hash = js_sha512.sha512_256.array(getArc4Signature(metadata))
8383
return new Uint8Array(hash.slice(0, 4))
8484
}
8585

src/impl/crypto.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { arc4, bytes, Bytes, Ecdsa, gtxn, internal, VrfVerify } from '@algorandfoundation/algorand-typescript'
22
import elliptic from 'elliptic'
3-
import { sha256 as js_sha256 } from 'js-sha256'
4-
import { keccak256 as js_keccak256, sha3_256 as js_sha3_256 } from 'js-sha3'
5-
import { sha512_256 as js_sha512_256 } from 'js-sha512'
3+
import js_sha256 from 'js-sha256'
4+
import js_sha3 from 'js-sha3'
5+
import js_sha512 from 'js-sha512'
66
import nacl from 'tweetnacl'
77
import { LOGIC_DATA_PREFIX, PROGRAM_TAG } from '../constants'
88
import { lazyContext } from '../context-helpers/internal-context'
@@ -11,28 +11,28 @@ import { asBytes, asBytesCls, asUint8Array, conactUint8Arrays } from '../util'
1111

1212
export const sha256 = (a: internal.primitives.StubBytesCompat): bytes => {
1313
const bytesA = internal.primitives.BytesCls.fromCompat(a)
14-
const hashArray = js_sha256.create().update(bytesA.asUint8Array()).digest()
14+
const hashArray = js_sha256.sha256.create().update(bytesA.asUint8Array()).digest()
1515
const hashBytes = internal.primitives.BytesCls.fromCompat(new Uint8Array(hashArray))
1616
return hashBytes.asAlgoTs()
1717
}
1818

1919
export const sha3_256 = (a: internal.primitives.StubBytesCompat): bytes => {
2020
const bytesA = internal.primitives.BytesCls.fromCompat(a)
21-
const hashArray = js_sha3_256.create().update(bytesA.asUint8Array()).digest()
21+
const hashArray = js_sha3.sha3_256.create().update(bytesA.asUint8Array()).digest()
2222
const hashBytes = internal.primitives.BytesCls.fromCompat(new Uint8Array(hashArray))
2323
return hashBytes.asAlgoTs()
2424
}
2525

2626
export const keccak256 = (a: internal.primitives.StubBytesCompat): bytes => {
2727
const bytesA = internal.primitives.BytesCls.fromCompat(a)
28-
const hashArray = js_keccak256.create().update(bytesA.asUint8Array()).digest()
28+
const hashArray = js_sha3.keccak256.create().update(bytesA.asUint8Array()).digest()
2929
const hashBytes = internal.primitives.BytesCls.fromCompat(new Uint8Array(hashArray))
3030
return hashBytes.asAlgoTs()
3131
}
3232

3333
export const sha512_256 = (a: internal.primitives.StubBytesCompat): bytes => {
3434
const bytesA = internal.primitives.BytesCls.fromCompat(a)
35-
const hashArray = js_sha512_256.create().update(bytesA.asUint8Array()).digest()
35+
const hashArray = js_sha512.sha512_256.create().update(bytesA.asUint8Array()).digest()
3636
const hashBytes = internal.primitives.BytesCls.fromCompat(new Uint8Array(hashArray))
3737
return hashBytes.asAlgoTs()
3838
}
@@ -59,7 +59,7 @@ export const ed25519verify = (
5959
)
6060

6161
const logicSig = conactUint8Arrays(asUint8Array(PROGRAM_TAG), programBytes.asUint8Array())
62-
const logicSigAddress = js_sha512_256.array(logicSig)
62+
const logicSigAddress = js_sha512.sha512_256.array(logicSig)
6363

6464
const addressBytes = Bytes(logicSigAddress)
6565
const data = LOGIC_DATA_PREFIX.concat(addressBytes).concat(asBytes(a))

src/util.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Account, Bytes, bytes, internal } from '@algorandfoundation/algorand-typescript'
22
import { encodingUtil } from '@algorandfoundation/puya-ts'
33
import { randomBytes } from 'crypto'
4-
import { sha512_256 as js_sha512_256 } from 'js-sha512'
4+
import js_sha512 from 'js-sha512'
55
import {
66
ALGORAND_ADDRESS_BYTE_LENGTH,
77
ALGORAND_ADDRESS_LENGTH,
@@ -172,12 +172,12 @@ export const uint8ArrayToNumber = (value: Uint8Array): number => {
172172
}
173173

174174
export const checksumFromPublicKey = (pk: Uint8Array): Uint8Array => {
175-
return Uint8Array.from(js_sha512_256.array(pk).slice(HASH_BYTES_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, HASH_BYTES_LENGTH))
175+
return Uint8Array.from(js_sha512.sha512_256.array(pk).slice(HASH_BYTES_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, HASH_BYTES_LENGTH))
176176
}
177177

178178
export const getApplicationAddress = (appId: internal.primitives.StubUint64Compat): Account => {
179179
const toBeSigned = conactUint8Arrays(asUint8Array(APP_ID_PREFIX), encodingUtil.bigIntToUint8Array(asBigInt(appId), 8))
180-
const appIdHash = js_sha512_256.array(toBeSigned)
180+
const appIdHash = js_sha512.sha512_256.array(toBeSigned)
181181
const publicKey = Uint8Array.from(appIdHash)
182182
const address = encodeAddress(publicKey)
183183
return Account(Bytes.fromBase32(address))

tests/crypto-op-codes.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { AlgoAmount } from '@algorandfoundation/algokit-utils/types/amount'
22
import { AppSpec } from '@algorandfoundation/algokit-utils/types/app-spec'
33
import { Bytes, Ec, Ecdsa, internal, uint64, VrfVerify } from '@algorandfoundation/algorand-typescript'
44
import elliptic from 'elliptic'
5-
import { keccak256 as js_keccak256 } from 'js-sha3'
6-
import { sha512_256 as js_sha512_256 } from 'js-sha512'
5+
import js_sha3 from 'js-sha3'
6+
import js_sha512 from 'js-sha512'
77
import nacl from 'tweetnacl'
88
import { afterEach, describe, expect, it, Mock, test, vi } from 'vitest'
99
import { TestExecutionContext } from '../src'
@@ -122,7 +122,7 @@ describe('crypto op codes', async () => {
122122
const account = await generateAVMTestAccount()
123123
const publicKey = decodePublicKey(account.addr.toString())
124124
const logicSig = conactUint8Arrays(asUint8Array(PROGRAM_TAG), approval.compiledBase64ToBytes)
125-
const logicSigAddress = js_sha512_256.array(logicSig)
125+
const logicSigAddress = js_sha512.sha512_256.array(logicSig)
126126
const parts = conactUint8Arrays(new Uint8Array(logicSigAddress), asUint8Array(message))
127127
const toBeSigned = conactUint8Arrays(asUint8Array(LOGIC_DATA_PREFIX), parts)
128128
const signature = nacl.sign.detached(toBeSigned, account.account.sk)
@@ -302,7 +302,7 @@ const generateEcdsaTestData = (v: Ecdsa) => {
302302
const keyPair = ecdsa.genKeyPair()
303303
const pk = keyPair.getPublic('array')
304304
const data = internal.primitives.BytesCls.fromCompat('test data for ecdsa')
305-
const messageHash = js_keccak256.create().update(data.asUint8Array()).digest()
305+
const messageHash = js_sha3.keccak256.create().update(data.asUint8Array()).digest()
306306
const signature = keyPair.sign(messageHash)
307307
const recoveryId = 0 // Recovery ID is typically 0 or 1
308308

0 commit comments

Comments
 (0)