Commit e0f84599 authored by tom's avatar tom

add proxy methods

parent 8d1769a8
...@@ -171,12 +171,18 @@ export const RESOURCES = { ...@@ -171,12 +171,18 @@ export const RESOURCES = {
contract_methods_read: { contract_methods_read: {
path: '/api/v2/smart-contracts/:id/methods-read', path: '/api/v2/smart-contracts/:id/methods-read',
}, },
contract_methods_read_proxy: {
path: '/api/v2/smart-contracts/:id/methods-read-proxy',
},
contract_method_query: { contract_method_query: {
path: '/api/v2/smart-contracts/:id/query-read-method', path: '/api/v2/smart-contracts/:id/query-read-method',
}, },
contract_methods_write: { contract_methods_write: {
path: '/api/v2/smart-contracts/:id/methods-write', path: '/api/v2/smart-contracts/:id/methods-write',
}, },
contract_methods_write_proxy: {
path: '/api/v2/smart-contracts/:id/methods-write-proxy',
},
// TOKEN // TOKEN
token: { token: {
...@@ -287,7 +293,9 @@ Q extends 'token_counters' ? TokenCounters : ...@@ -287,7 +293,9 @@ Q extends 'token_counters' ? TokenCounters :
Q extends 'config_json_rpc' ? JsonRpcUrlResponse : Q extends 'config_json_rpc' ? JsonRpcUrlResponse :
Q extends 'contract' ? SmartContract : Q extends 'contract' ? SmartContract :
Q extends 'contract_methods_read' ? Array<SmartContractReadMethod> : Q extends 'contract_methods_read' ? Array<SmartContractReadMethod> :
Q extends 'contract_methods_read_proxy' ? Array<SmartContractReadMethod> :
Q extends 'contract_methods_write' ? Array<SmartContractWriteMethod> : Q extends 'contract_methods_write' ? Array<SmartContractWriteMethod> :
Q extends 'contract_methods_write_proxy' ? Array<SmartContractWriteMethod> :
never; never;
/* eslint-enable @typescript-eslint/indent */ /* eslint-enable @typescript-eslint/indent */
......
...@@ -13,13 +13,17 @@ import DataFetchAlert from 'ui/shared/DataFetchAlert'; ...@@ -13,13 +13,17 @@ import DataFetchAlert from 'ui/shared/DataFetchAlert';
import ContractMethodCallable from './ContractMethodCallable'; import ContractMethodCallable from './ContractMethodCallable';
import ContractMethodConstant from './ContractMethodConstant'; import ContractMethodConstant from './ContractMethodConstant';
const ContractRead = () => { interface Props {
isProxy?: boolean;
}
const ContractRead = ({ isProxy }: Props) => {
const router = useRouter(); const router = useRouter();
const apiFetch = useApiFetch(); const apiFetch = useApiFetch();
const addressHash = router.query.id?.toString(); const addressHash = router.query.id?.toString();
const { data, isLoading, isError } = useApiQuery('contract_methods_read', { const { data, isLoading, isError } = useApiQuery(isProxy ? 'contract_methods_read_proxy' : 'contract_methods_read', {
pathParams: { id: addressHash }, pathParams: { id: addressHash },
queryOptions: { queryOptions: {
enabled: Boolean(router.query.id), enabled: Boolean(router.query.id),
...@@ -34,12 +38,13 @@ const ContractRead = () => { ...@@ -34,12 +38,13 @@ const ContractRead = () => {
body: { body: {
args, args,
method_id: item.method_id, method_id: item.method_id,
contract_type: isProxy ? 'proxy' : 'regular',
}, },
}, },
}); });
return [ [ 'string', 'this is mock' ] ]; return [ [ 'string', 'this is mock' ] ];
}, [ addressHash, apiFetch ]); }, [ addressHash, apiFetch, isProxy ]);
const renderContent = React.useCallback((item: SmartContractReadMethod, index: number, id: number) => { const renderContent = React.useCallback((item: SmartContractReadMethod, index: number, id: number) => {
if (item.inputs.length === 0) { if (item.inputs.length === 0) {
......
...@@ -10,12 +10,16 @@ import DataFetchAlert from 'ui/shared/DataFetchAlert'; ...@@ -10,12 +10,16 @@ import DataFetchAlert from 'ui/shared/DataFetchAlert';
import ContractMethodCallable from './ContractMethodCallable'; import ContractMethodCallable from './ContractMethodCallable';
const ContractWrite = () => { interface Props {
isProxy?: boolean;
}
const ContractWrite = ({ isProxy }: Props) => {
const router = useRouter(); const router = useRouter();
const addressHash = router.query.id?.toString(); const addressHash = router.query.id?.toString();
const { data, isLoading, isError } = useApiQuery('contract_methods_write', { const { data, isLoading, isError } = useApiQuery(isProxy ? 'contract_methods_write_proxy' : 'contract_methods_write', {
pathParams: { id: addressHash }, pathParams: { id: addressHash },
queryOptions: { queryOptions: {
enabled: Boolean(router.query.id), enabled: Boolean(router.query.id),
......
...@@ -27,9 +27,9 @@ const CONTRACT_TABS = [ ...@@ -27,9 +27,9 @@ const CONTRACT_TABS = [
{ id: 'contact_code', title: 'Code', component: <ContractCode/> }, { id: 'contact_code', title: 'Code', component: <ContractCode/> },
{ id: 'contact_decompiled_code', title: 'Decompiled code', component: <div>Decompiled code</div> }, { id: 'contact_decompiled_code', title: 'Decompiled code', component: <div>Decompiled code</div> },
{ id: 'read_contract', title: 'Read contract', component: <ContractRead/> }, { id: 'read_contract', title: 'Read contract', component: <ContractRead/> },
{ id: 'read_proxy', title: 'Read proxy', component: <div>Read proxy</div> }, { id: 'read_proxy', title: 'Read proxy', component: <ContractRead isProxy/> },
{ id: 'write_contract', title: 'Write contract', component: <ContractWrite/> }, { id: 'write_contract', title: 'Write contract', component: <ContractWrite/> },
{ id: 'write_proxy', title: 'Write proxy', component: <div>Write proxy</div> }, { id: 'write_proxy', title: 'Write proxy', component: <ContractWrite isProxy/> },
]; ];
const AddressPageContent = () => { const AddressPageContent = () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment