Skip to content

Commit

Permalink
refactor: clean up outdated version gated code (MystenLabs#7761)
Browse files Browse the repository at this point in the history
This pr is for MystenLabs#7541.

---------

Co-authored-by: Chris Li <76067158+666lcz@users.noreply.github.com>
Co-authored-by: Chris Li <666lcz@gmail.com>
  • Loading branch information
3 people authored Feb 1, 2023
1 parent dd0b8cf commit 9023d0a
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 86 deletions.
8 changes: 1 addition & 7 deletions apps/explorer/src/pages/search-result/SearchResult.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,8 @@ const initState: SearchDataType = {
};

const querySearchParams = async (input: string, network: Network | string) => {
const version = await rpc(network).getRpcApiVersion();
let searchPromises = [];
if (
isValidTransactionDigest(
input,
version?.major === 0 && version?.minor < 18 ? 'base64' : 'base58'
)
) {
if (isValidTransactionDigest(input)) {
searchPromises.push(
rpc(network)
.getTransactionWithEffects(input)
Expand Down
8 changes: 1 addition & 7 deletions apps/explorer/src/utils/api/searchUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,7 @@ export const navigateWithUnknown = async (
network: Network | string
) => {
let searchPromises = [];
const version = await rpc(network).getRpcApiVersion();
if (
isValidTransactionDigest(
input,
version?.major === 0 && version?.minor < 18 ? 'base64' : 'base58'
)
) {
if (isValidTransactionDigest(input)) {
searchPromises.push(
rpc(network)
.getTransactionWithEffects(input)
Expand Down
4 changes: 2 additions & 2 deletions sdk/typescript/src/providers/json-rpc-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,7 @@ export class JsonRpcProvider extends Provider {
digest: TransactionDigest
): Promise<SuiTransactionResponse> {
try {
if (!isValidTransactionDigest(digest, 'base58')) {
if (!isValidTransactionDigest(digest)) {
throw new Error('Invalid Transaction digest');
}
const resp = await this.client.requestWithType(
Expand All @@ -667,7 +667,7 @@ export class JsonRpcProvider extends Provider {
): Promise<SuiTransactionResponse[]> {
try {
const requests = digests.map((d) => {
if (!isValidTransactionDigest(d, 'base58')) {
if (!isValidTransactionDigest(d)) {
throw new Error(`Invalid Transaction digest ${d}`);
}
return {
Expand Down
4 changes: 1 addition & 3 deletions sdk/typescript/src/signers/signer-with-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,7 @@ export abstract class SignerWithProvider implements Signer {
sig.signatureScheme,
sig.signature,
sig.pubKey,
bcs,
version?.major == 0 && version?.minor < 18 ? 'base64' : 'base58',
version?.major == 0 && version?.minor < 18 ? false : true
bcs
);
}

Expand Down
35 changes: 6 additions & 29 deletions sdk/typescript/src/types/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,10 @@ const TX_DIGEST_LENGTH = 32;

/** Returns whether the tx digest is valid based on the serialization format */
export function isValidTransactionDigest(
value: string,
serializationFmt: 'base64' | 'base58'
value: string
): value is TransactionDigest {
let buffer;
try {
if (serializationFmt === 'base58') {
buffer = new Base58DataBuffer(value);
} else {
buffer = new Base64DataBuffer(value);
}
const buffer = new Base58DataBuffer(value);
return buffer.getLength() === TX_DIGEST_LENGTH;
} catch (e) {
return false;
Expand Down Expand Up @@ -138,9 +132,7 @@ export function generateTransactionDigest(
signatureScheme: SignatureScheme,
signature: string | Base64DataBuffer,
publicKey: PublicKeyInitData | PublicKey,
bcs: BCS,
serializationFmt: 'base64' | 'base58',
excludeSig: boolean = false
bcs: BCS
): string {
const signatureBytes = (
typeof signature === 'string' ? new Base64DataBuffer(signature) : signature
Expand Down Expand Up @@ -172,25 +164,10 @@ export function generateTransactionDigest(
txSignature.set(signatureBytes, 1);
txSignature.set(publicKeyBytes, 1 + signatureBytes.length);

const senderSignedData = {
data,
txSignature,
};
const senderSignedDataBytes = bcs
.ser('SenderSignedData', senderSignedData)
.toBytes();

let hash;
if (excludeSig) {
const txBytes = bcs.ser('TransactionData', data).toBytes();
hash = sha256Hash('TransactionData', txBytes);
} else {
hash = sha256Hash('SenderSignedData', senderSignedDataBytes);
}
const txBytes = bcs.ser('TransactionData', data).toBytes();
const hash = sha256Hash('TransactionData', txBytes);

return serializationFmt === 'base58'
? new Base58DataBuffer(hash).toString()
: new Base64DataBuffer(hash).toString();
return new Base58DataBuffer(hash).toString()
}

function isHex(value: string): boolean {
Expand Down
17 changes: 1 addition & 16 deletions sdk/typescript/test/unit/types/common.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,26 +36,11 @@ describe('Test common functions', () => {
'ED25519',
signature,
publicKey,
bcs,
"base58",
true
bcs
);
expect(transactionDigest).toEqual(
'HZaXLHhraTyRJjQAEbaEn9ruT1LrjUMG9Sq9EeGY2JLZ'
);

const legacyTransactionDigest = generateTransactionDigest(
transactionData,
'ED25519',
signature,
publicKey,
bcs,
"base64",
false
);
expect(legacyTransactionDigest).toEqual(
'DAOJCfCACatIaLpFEWuK90dJSPkbM48nRUOkGcbKZ9A='
);
});
});
});
28 changes: 6 additions & 22 deletions sdk/typescript/test/unit/types/stringTypes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,16 @@ describe('String type guards', () => {
}

describe('isValidTransactionDigest()', () => {
it('rejects invalid base64', () => {
expect(isValidTransactionDigest('MDpQc 1IIzkie1dJdj nfm85XmRCJmk KHVUU05Abg==', 'base64')).toBe(false);
expect(isValidTransactionDigest('X09wJFxwQDdTU1tzMy5NJXdSTnknPCh9J0tNUCdmIw ', 'base64')).toBe(false);
});

it('rejects base64 string of wrong length', () => {
expect(isValidTransactionDigest('c3Nz', 'base64')).toBe(false);
expect(isValidTransactionDigest('MTExMQ==', 'base64')).toBe(false);
});

it('accepts base64 strings of correct length', () => {
expect(isValidTransactionDigest('UYKbz61ny/+E+r07JatGyrtrv/FyjNeqUEQisJJXPHM=', 'base64')).toBe(true);
expect(isValidTransactionDigest('obGrcB0a+aMJXyRMGQ+7to5GaJ6a1Kfd6tS+sAM0d/8=', 'base64')).toBe(true);
expect(isValidTransactionDigest('pMmQoBeSSErk96hKMtkilwCZub3FaOF3IIdii16/DBo=', 'base64')).toBe(true);
});

it('rejects base58 strings of the wrong length', () => {
expect(isValidTransactionDigest('r', 'base58')).toBe(false);
expect(isValidTransactionDigest('HXLk', 'base58')).toBe(false);
expect(isValidTransactionDigest('3mJ6x8dSE2KLrk', 'base58')).toBe(false);
expect(isValidTransactionDigest('r')).toBe(false);
expect(isValidTransactionDigest('HXLk')).toBe(false);
expect(isValidTransactionDigest('3mJ6x8dSE2KLrk')).toBe(false);
});

it('accepts base58 strings of the correct length', () => {
expect(isValidTransactionDigest('vQMG8nrGirX14JLfyzy15DrYD3gwRC1eUmBmBzYUsgh', 'base58')).toBe(true);
expect(isValidTransactionDigest('7msXn7aieHy73WkRxh3Xdqh9PEoPYBmJW59iE4TVvz62', 'base58')).toBe(true);
expect(isValidTransactionDigest('C6G8PsqwNpMqrK7ApwuQUvDgzkFcUaUy6Y5ycrAN2q3F', 'base58')).toBe(true);
expect(isValidTransactionDigest('vQMG8nrGirX14JLfyzy15DrYD3gwRC1eUmBmBzYUsgh')).toBe(true);
expect(isValidTransactionDigest('7msXn7aieHy73WkRxh3Xdqh9PEoPYBmJW59iE4TVvz62')).toBe(true);
expect(isValidTransactionDigest('C6G8PsqwNpMqrK7ApwuQUvDgzkFcUaUy6Y5ycrAN2q3F')).toBe(true);
});
});

Expand Down

0 comments on commit 9023d0a

Please sign in to comment.