mirror of
https://github.com/zhigang1992/wallet.git
synced 2026-04-29 13:15:32 +08:00
chore: add contract call details tests
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import React from 'react';
|
||||
import { render, waitFor } from '@testing-library/react';
|
||||
|
||||
import { ProviderWithWalletAndRequestToken } from '../../../../tests/state-utils';
|
||||
import { ContractCallDetails } from './contract-call-details';
|
||||
import { HEYSTACK_HEY_TX_REQUEST_DECODED } from '../../../../tests/mocks';
|
||||
import { truncateMiddle } from '@stacks/ui-utils';
|
||||
import { cvToString, deserializeCV } from '@stacks/transactions';
|
||||
|
||||
const truncatedContractAddress = truncateMiddle(HEYSTACK_HEY_TX_REQUEST_DECODED.contractAddress, 4);
|
||||
const truncatedContractId = `${truncatedContractAddress}.${HEYSTACK_HEY_TX_REQUEST_DECODED.contractName}`;
|
||||
|
||||
const getStringValueFromHexCv = (hex: string) => {
|
||||
const argCV = deserializeCV(Buffer.from(hex, 'hex'));
|
||||
return cvToString(argCV);
|
||||
};
|
||||
const message = getStringValueFromHexCv(HEYSTACK_HEY_TX_REQUEST_DECODED.functionArgs[0]);
|
||||
const giphyUrl = getStringValueFromHexCv(HEYSTACK_HEY_TX_REQUEST_DECODED.functionArgs[1]);
|
||||
|
||||
describe('<ContractCallDetails />', () => {
|
||||
it('correctly displays the contract address and function name', async () => {
|
||||
const { getByText } = render(
|
||||
<ProviderWithWalletAndRequestToken>
|
||||
<ContractCallDetails />
|
||||
</ProviderWithWalletAndRequestToken>
|
||||
);
|
||||
await waitFor(() => {
|
||||
getByText(HEYSTACK_HEY_TX_REQUEST_DECODED.functionName);
|
||||
getByText(truncatedContractId);
|
||||
});
|
||||
});
|
||||
|
||||
it('correctly displays the function arguments (message and giphy url)', async () => {
|
||||
const { getByText } = render(
|
||||
<ProviderWithWalletAndRequestToken>
|
||||
<ContractCallDetails />
|
||||
</ProviderWithWalletAndRequestToken>
|
||||
);
|
||||
await waitFor(() => {
|
||||
getByText(message);
|
||||
getByText(giphyUrl);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -65,8 +65,8 @@ const FunctionArgumentsList = memo((props: StackProps) => {
|
||||
<Stack divider={<Divider />} spacing="base" {...props}>
|
||||
{transactionRequest.functionArgs.map((arg, index) => {
|
||||
return (
|
||||
<React.Suspense fallback={<>loading</>}>
|
||||
<FunctionArgumentRow key={`${arg}-${index}`} arg={arg} index={index} />
|
||||
<React.Suspense fallback={<>loading</>} key={`${arg}-${index}`}>
|
||||
<FunctionArgumentRow arg={arg} index={index} />
|
||||
</React.Suspense>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -7,6 +7,37 @@ export const SECRET_KEY =
|
||||
export const HEYSTACK_HEY_TX_REQUEST =
|
||||
'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJzdHhBZGRyZXNzIjoiU1QyUEhDUEFOVlQ4RFZQU1k1VzJaWjgxTTI4NVE1WjhZNkRRTVpFN1oiLCJjb250cmFjdEFkZHJlc3MiOiJTVDIxRlRDODJDQ0tFMFlIOVNLNVNKMUQ0WEVNUkEwNjlGS1YwVko4TiIsImNvbnRyYWN0TmFtZSI6ImhleS1maW5hbCIsImZ1bmN0aW9uTmFtZSI6InNlbmQtbWVzc2FnZSIsInBvc3RDb25kaXRpb25zIjpbIjAxMDIxYWFkMTY1OTU1ZGU5MGRkZGIzZTJmMDVmZmEwMzQxMjBiNzJmZDFlMzMxYTgyZmQzMTAyNjMyNmUwN2EyOWNjY2I5OTA1YTRlYmE5ODUwMGM5N2MwOTY4NjU3OTJkNzQ2ZjZiNjU2ZTA5Njg2NTc5MmQ3NDZmNmI2NTZlMDEwMDAwMDAwMDAwMDAwMDAxIl0sIm5ldHdvcmsiOnsidmVyc2lvbiI6MTI4LCJjaGFpbklkIjoyMTQ3NDgzNjQ4LCJjb3JlQXBpVXJsIjoiaHR0cHM6Ly9zdGFja3Mtbm9kZS1hcGkucmVndGVzdC5zdGFja3MuY28iLCJibnNMb29rdXBVcmwiOiJodHRwczovL3N0YWNrcy1ub2RlLWFwaS5tYWlubmV0LnN0YWNrcy5jbyIsImJyb2FkY2FzdEVuZHBvaW50IjoiL3YyL3RyYW5zYWN0aW9ucyIsInRyYW5zZmVyRmVlRXN0aW1hdGVFbmRwb2ludCI6Ii92Mi9mZWVzL3RyYW5zZmVyIiwiYWNjb3VudEVuZHBvaW50IjoiL3YyL2FjY291bnRzIiwiY29udHJhY3RBYmlFbmRwb2ludCI6Ii92Mi9jb250cmFjdHMvaW50ZXJmYWNlIiwicmVhZE9ubHlGdW5jdGlvbkNhbGxFbmRwb2ludCI6Ii92Mi9jb250cmFjdHMvY2FsbC1yZWFkIn0sImZ1bmN0aW9uQXJncyI6WyIwZTAwMDAwMDE1Njg2NTc5MjA2NjcyNmY2ZDIwNzQ2ODY1MjA3NDY1NzM3NDIwNjE3MDcwIiwiMGEwZTAwMDAwMDdlNjg3NDc0NzA3MzNhMmYyZjZkNjU2NDY5NjEzMTJlNjc2OTcwNjg3OTJlNjM2ZjZkMmY2ZDY1NjQ2OTYxMmY0MTUzNjQzMDU1NmI2YTMwNzkzMzcxNGQ0ZDJmNjc2OTcwNjg3OTJlNjc2OTY2M2Y2MzY5NjQzZDMyMzkzODM1NjQ2NTYyNjIzMDc4MzQzMzZkMzQ3NjM0NjE3YTc3NjM3NTM5NzE2NzM0NmY2NjY0NjQ3OTc5MzA2OTY0NjI2YTZkNjk2ZDczN2E2ZjM2MzIzODMxNjc2YTI2NzI2OTY0M2Q2NzY5NzA2ODc5MmU2NzY5NjYyNjYzNzQzZDY3Il0sInR4VHlwZSI6ImNvbnRyYWN0X2NhbGwiLCJwdWJsaWNLZXkiOiIwMzFhNWQ1ZmIzNjQ1Yzc2YzUwODNlM2E0ZmI5YTU5YjVmZWQzMDljODcxOTc4NDcxZDY0NDhjOGFkZTg2MzgwZTgiLCJhcHBEZXRhaWxzIjp7Im5hbWUiOiJIZXlzdGFjayIsImljb24iOiIvaWNvbi5wbmcifX0.LCbb9_PlvkcxH6Swe1i9Jq6mtwD59fssnECcklzKWlq4h4IMdvaOjCGUoLR44pO7CuAr8oOBm6VrALvT4g8-oQ\n';
|
||||
|
||||
export const HEYSTACK_HEY_TX_REQUEST_DECODED = {
|
||||
stxAddress: 'ST2PHCPANVT8DVPSY5W2ZZ81M285Q5Z8Y6DQMZE7Z',
|
||||
contractAddress: 'ST21FTC82CCKE0YH9SK5SJ1D4XEMRA069FKV0VJ8N',
|
||||
contractName: 'hey-final',
|
||||
functionName: 'send-message',
|
||||
postConditions: [
|
||||
'01021aad165955de90dddb3e2f05ffa034120b72fd1e331a82fd31026326e07a29cccb9905a4eba98500c97c096865792d746f6b656e096865792d746f6b656e010000000000000001',
|
||||
],
|
||||
network: {
|
||||
version: 128,
|
||||
chainId: 2147483648,
|
||||
coreApiUrl: 'https://stacks-node-api.regtest.stacks.co',
|
||||
bnsLookupUrl: 'https://stacks-node-api.mainnet.stacks.co',
|
||||
broadcastEndpoint: '/v2/transactions',
|
||||
transferFeeEstimateEndpoint: '/v2/fees/transfer',
|
||||
accountEndpoint: '/v2/accounts',
|
||||
contractAbiEndpoint: '/v2/contracts/interface',
|
||||
readOnlyFunctionCallEndpoint: '/v2/contracts/call-read',
|
||||
},
|
||||
functionArgs: [
|
||||
'0e000000156865792066726f6d20746865207465737420617070',
|
||||
'0a0e0000007e68747470733a2f2f6d65646961312e67697068792e636f6d2f6d656469612f41536430556b6a307933714d4d2f67697068792e6769663f6369643d3239383564656262307834336d347634617a776375397167346f6664647979306964626a6d696d737a6f36323831676a267269643d67697068792e6769662663743d67',
|
||||
],
|
||||
txType: 'contract_call',
|
||||
publicKey: '031a5d5fb3645c76c5083e3a4fb9a59b5fed309c871978471d6448c8ade86380e8',
|
||||
appDetails: {
|
||||
name: 'Heystack',
|
||||
icon: '/icon.png',
|
||||
},
|
||||
};
|
||||
|
||||
export const STX_TRANSFER_TX_REQUEST =
|
||||
'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJzdHhBZGRyZXNzIjoiU1QzNVozWVFDVEMxV1o4WjdBS0hHRTkxSEswNVdLTUtQVE4xS1g3UTciLCJuZXR3b3JrIjp7InZlcnNpb24iOjEyOCwiY2hhaW5JZCI6MjE0NzQ4MzY0OCwiY29yZUFwaVVybCI6Imh0dHBzOi8vc3RhY2tzLW5vZGUtYXBpLnhlbm9uLmJsb2Nrc3RhY2sub3JnIiwiYm5zTG9va3VwVXJsIjoiaHR0cHM6Ly9jb3JlLmJsb2Nrc3RhY2sub3JnIiwiYnJvYWRjYXN0RW5kcG9pbnQiOiIvdjIvdHJhbnNhY3Rpb25zIiwidHJhbnNmZXJGZWVFc3RpbWF0ZUVuZHBvaW50IjoiL3YyL2ZlZXMvdHJhbnNmZXIiLCJhY2NvdW50RW5kcG9pbnQiOiIvdjIvYWNjb3VudHMiLCJjb250cmFjdEFiaUVuZHBvaW50IjoiL3YyL2NvbnRyYWN0cy9pbnRlcmZhY2UiLCJyZWFkT25seUZ1bmN0aW9uQ2FsbEVuZHBvaW50IjoiL3YyL2NvbnRyYWN0cy9jYWxsLXJlYWQifSwiYXV0aE9yaWdpbiI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsIm1lbW8iOiJGcm9tIGRlbW8gYXBwIiwicmVjaXBpZW50IjoiU1RCNDRIWVBZQVQyQkIyUUU1MTNOU1A4MUhUTVlXQkpQMDJIUEdLNiIsImFtb3VudCI6IjEwMiIsInB1YmxpY0tleSI6IjAyYzY3ZTZlZWMzYzY2MzY4MDU3MzIwZTYzMWNmZjAzZjFmMzY5MjI4ZDI0Mzc5ZjM1OGEwYWU4ZmY5NDJlNGVmZiIsInR4VHlwZSI6InRva2VuX3RyYW5zZmVyIiwiYXBwRGV0YWlscyI6eyJuYW1lIjoiVGVzdGluZyBBcHAiLCJpY29uIjoiL2Fzc2V0cy9tZXNzZW5nZXItYXBwLWljb24ucG5nIn19.SQm6Pg_ny1J0o9iReIfY2D9jkYUvaER-lmHe2Jxc8opfASH8bplRN1FlI8SQ4dOLO0rfvjvIaCV4qbPAylnNSA';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user