Add Tezos Support (#127)
* feat(): add tezos * feat(dapp): add tezos support * feat(): remove unused project * feat(): update logo * feat(): add tezos sign modal * feat(): remove unimplemented method * feat(tezos): add send and sign support * feat(tezos): add rpc * Update wallets/react-wallet-v2/src/views/SessionProposalModal.tsx Co-authored-by: Ben Kremer <contact@bkrem.dev> * feat(): share all accounts --------- Co-authored-by: Ben Kremer <ben@walletconnect.com> Co-authored-by: Ben Kremer <contact@bkrem.dev>
This commit is contained in:
parent
757ed43909
commit
9bf2b02602
22
dapps/react-dapp-v2/public/assets/tezos.svg
Normal file
22
dapps/react-dapp-v2/public/assets/tezos.svg
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.0" id="katman_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 800 600" style="enable-background:new 0 0 800 600;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#2C7DF7;}
|
||||||
|
.st1{fill:#FFFFFF;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M399.8,559.9c143.8,0,260.3-116.6,260.3-260.3S543.6,39.2,399.8,39.2c-143.8,0-260.3,116.6-260.3,260.3
|
||||||
|
S256,559.9,399.8,559.9z"/>
|
||||||
|
<path class="st1" d="M424.8,449.1c-21.1,0-36.4-5.1-46.1-15.2c-9-8.6-14.2-20.4-14.5-32.8c-0.1-3.8,0.8-7.5,2.5-10.8
|
||||||
|
c1.7-2.9,4-5.3,6.9-6.9c3.3-1.7,7-2.5,10.8-2.5c3.7,0,7.4,0.9,10.8,2.5c2.9,1.6,5.2,4,6.9,6.9c1.8,3.3,2.7,7.1,2.6,10.8
|
||||||
|
c0.2,4.5-1.1,9-3.7,12.7c-2.2,3-5.2,5.3-8.8,6.4c3.5,4.4,8.4,7.5,13.8,8.6c6.1,1.8,12.5,2.7,18.9,2.7c8.4,0.1,16.7-2.4,23.7-7.1
|
||||||
|
c7.3-5.1,12.7-12.5,15.5-21c3.5-10.1,5.2-20.7,5.1-31.4c0.3-11.1-1.6-22.2-5.5-32.6c-3-8.3-8.6-15.5-16-20.3
|
||||||
|
c-6.9-4.4-14.9-6.6-23-6.6c-7.1,0.6-14,2.9-20,6.8l-14.8,7.4v-7.4l66.5-89.2h-92.2v92.6c-0.3,6.7,1.5,13.3,5.1,18.9
|
||||||
|
c1.7,2.5,4.1,4.4,6.8,5.7c2.7,1.3,5.7,1.9,8.7,1.7c5.5-0.1,10.9-2,15.3-5.4c5-3.6,9.3-8.1,12.8-13.2c0.3-0.9,0.9-1.7,1.7-2.2
|
||||||
|
c0.6-0.5,1.4-0.8,2.2-0.8c1.6,0.1,3.1,0.8,4.3,1.8c1.5,1.7,2.4,4,2.3,6.3c-0.2,1.6-0.5,3.1-0.8,4.6c-3.3,7.9-8.8,14.7-15.8,19.6
|
||||||
|
c-6.5,4.4-14.3,6.8-22.2,6.7c-20,0-33.8-3.9-41.5-11.8c-4-4.3-7-9.4-9-15c-2-5.5-2.8-11.4-2.5-17.3v-92.4h-46.9v-17.2H332v-39.2
|
||||||
|
l-10.8-10.8v-8.8h31.3l11.8,6.1v52.7l121.8-0.4l12.1,12.2l-74.7,75c4.5-1.8,9.3-3,14.1-3.4c9.6,0.4,18.9,3.1,27.3,7.8
|
||||||
|
c9.7,4.6,17.8,11.9,23.5,21c5.1,7.7,8.7,16.3,10.6,25.3c1.6,7.1,2.4,14.4,2.5,21.7c0,13.9-3.1,27.6-9.2,40.1
|
||||||
|
c-5.8,12.1-15.6,21.9-27.7,27.7C452.3,446,438.6,449.1,424.8,449.1L424.8,449.1z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
@ -7,6 +7,7 @@ import * as solana from "./solana";
|
|||||||
import * as near from "./near";
|
import * as near from "./near";
|
||||||
import * as elrond from "./elrond";
|
import * as elrond from "./elrond";
|
||||||
import * as tron from "./tron";
|
import * as tron from "./tron";
|
||||||
|
import * as tezos from "./tezos";
|
||||||
|
|
||||||
import { ChainMetadata, ChainRequestRender } from "../helpers";
|
import { ChainMetadata, ChainRequestRender } from "../helpers";
|
||||||
|
|
||||||
@ -27,6 +28,8 @@ export function getChainMetadata(chainId: string): ChainMetadata {
|
|||||||
return elrond.getChainMetadata(chainId);
|
return elrond.getChainMetadata(chainId);
|
||||||
case "tron":
|
case "tron":
|
||||||
return tron.getChainMetadata(chainId);
|
return tron.getChainMetadata(chainId);
|
||||||
|
case "tezos":
|
||||||
|
return tezos.getChainMetadata(chainId);
|
||||||
default:
|
default:
|
||||||
throw new Error(`No metadata handler for namespace ${namespace}`);
|
throw new Error(`No metadata handler for namespace ${namespace}`);
|
||||||
}
|
}
|
||||||
@ -46,6 +49,8 @@ export function getChainRequestRender(
|
|||||||
return polkadot.getChainRequestRender(request);
|
return polkadot.getChainRequestRender(request);
|
||||||
case "near":
|
case "near":
|
||||||
return near.getChainRequestRender(request);
|
return near.getChainRequestRender(request);
|
||||||
|
case "tezos":
|
||||||
|
return tezos.getChainRequestRender(request);
|
||||||
default:
|
default:
|
||||||
throw new Error(`No render handler for namespace ${namespace}`);
|
throw new Error(`No render handler for namespace ${namespace}`);
|
||||||
}
|
}
|
||||||
|
64
dapps/react-dapp-v2/src/chains/tezos.ts
Normal file
64
dapps/react-dapp-v2/src/chains/tezos.ts
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import { JsonRpcRequest } from "@walletconnect/jsonrpc-utils";
|
||||||
|
|
||||||
|
import {
|
||||||
|
NamespaceMetadata,
|
||||||
|
ChainMetadata,
|
||||||
|
ChainRequestRender,
|
||||||
|
ChainsMap,
|
||||||
|
} from "../helpers";
|
||||||
|
|
||||||
|
export const TezosMetadata: NamespaceMetadata = {
|
||||||
|
mainnet: {
|
||||||
|
logo: "/assets/tezos.svg",
|
||||||
|
rgb: "44, 125, 247",
|
||||||
|
},
|
||||||
|
testnet: {
|
||||||
|
logo: "/assets/tezos.svg",
|
||||||
|
rgb: "44, 125, 247",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const TezosChainData: ChainsMap = {
|
||||||
|
mainnet: {
|
||||||
|
name: "Tezos",
|
||||||
|
id: "tezos:mainnet",
|
||||||
|
rpc: ["https://mainnet.api.tez.ie"],
|
||||||
|
slip44: 1729,
|
||||||
|
testnet: false,
|
||||||
|
},
|
||||||
|
testnet: {
|
||||||
|
name: "Tezos Testnet",
|
||||||
|
id: "tezos:testnet",
|
||||||
|
rpc: ["https://ghostnet.ecadinfra.com"],
|
||||||
|
slip44: 1729,
|
||||||
|
testnet: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export function getChainMetadata(chainId: string): ChainMetadata {
|
||||||
|
const reference = chainId.split(":")[1];
|
||||||
|
const metadata = TezosMetadata[reference];
|
||||||
|
if (typeof metadata === "undefined") {
|
||||||
|
throw new Error(`No chain metadata found for chainId: ${chainId}`);
|
||||||
|
}
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getChainRequestRender(
|
||||||
|
request: JsonRpcRequest
|
||||||
|
): ChainRequestRender[] {
|
||||||
|
let params = [{ label: "Method", value: request.method }];
|
||||||
|
|
||||||
|
switch (request.method) {
|
||||||
|
default:
|
||||||
|
params = [
|
||||||
|
...params,
|
||||||
|
{
|
||||||
|
label: "params",
|
||||||
|
value: JSON.stringify(request.params, null, "\t"),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return params;
|
||||||
|
}
|
@ -14,6 +14,7 @@ export const DEFAULT_MAIN_CHAINS = [
|
|||||||
"polkadot:91b171bb158e2d3848fa23a9f1c25182",
|
"polkadot:91b171bb158e2d3848fa23a9f1c25182",
|
||||||
"elrond:1",
|
"elrond:1",
|
||||||
"tron:0x2b6653dc",
|
"tron:0x2b6653dc",
|
||||||
|
"tezos:mainnet",
|
||||||
];
|
];
|
||||||
|
|
||||||
export const DEFAULT_TEST_CHAINS = [
|
export const DEFAULT_TEST_CHAINS = [
|
||||||
@ -28,6 +29,7 @@ export const DEFAULT_TEST_CHAINS = [
|
|||||||
"near:testnet",
|
"near:testnet",
|
||||||
"elrond:D",
|
"elrond:D",
|
||||||
"tron:0xcd8690dc",
|
"tron:0xcd8690dc",
|
||||||
|
"tezos:testnet",
|
||||||
];
|
];
|
||||||
|
|
||||||
export const DEFAULT_CHAINS = [...DEFAULT_MAIN_CHAINS, ...DEFAULT_TEST_CHAINS];
|
export const DEFAULT_CHAINS = [...DEFAULT_MAIN_CHAINS, ...DEFAULT_TEST_CHAINS];
|
||||||
@ -125,6 +127,17 @@ export enum DEFAULT_TRON_METHODS {
|
|||||||
|
|
||||||
export enum DEFAULT_TRON_EVENTS {}
|
export enum DEFAULT_TRON_EVENTS {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TEZOS
|
||||||
|
*/
|
||||||
|
export enum DEFAULT_TEZOS_METHODS {
|
||||||
|
TEZOS_GET_ACCOUNTS = "tezos_getAccounts",
|
||||||
|
TEZOS_SEND = "tezos_send",
|
||||||
|
TEZOS_SIGN = "tezos_sign",
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum DEFAULT_TEZOS_EVENTS {}
|
||||||
|
|
||||||
export const DEFAULT_GITHUB_REPO_URL =
|
export const DEFAULT_GITHUB_REPO_URL =
|
||||||
"https://github.com/WalletConnect/web-examples/tree/main/dapps/react-dapp-v2";
|
"https://github.com/WalletConnect/web-examples/tree/main/dapps/react-dapp-v2";
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ import { ChainNamespaces, ChainsMap, getAllChainNamespaces } from "../helpers";
|
|||||||
import { NearChainData } from "../chains/near";
|
import { NearChainData } from "../chains/near";
|
||||||
import { CosmosChainData } from "../chains/cosmos";
|
import { CosmosChainData } from "../chains/cosmos";
|
||||||
import { EIP155ChainData } from "../chains/eip155";
|
import { EIP155ChainData } from "../chains/eip155";
|
||||||
|
import { TezosChainData } from "../chains/tezos";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Types
|
* Types
|
||||||
@ -65,6 +66,9 @@ export function ChainDataContextProvider({
|
|||||||
case "eip155":
|
case "eip155":
|
||||||
chains = EIP155ChainData;
|
chains = EIP155ChainData;
|
||||||
break;
|
break;
|
||||||
|
case "tezos":
|
||||||
|
chains = TezosChainData;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
console.error("Unknown chain namespace: ", namespace);
|
console.error("Unknown chain namespace: ", namespace);
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ import {
|
|||||||
DEFAULT_NEAR_METHODS,
|
DEFAULT_NEAR_METHODS,
|
||||||
DEFAULT_ELROND_METHODS,
|
DEFAULT_ELROND_METHODS,
|
||||||
DEFAULT_TRON_METHODS,
|
DEFAULT_TRON_METHODS,
|
||||||
|
DEFAULT_TEZOS_METHODS,
|
||||||
} from "../constants";
|
} from "../constants";
|
||||||
import { useChainData } from "./ChainDataContext";
|
import { useChainData } from "./ChainDataContext";
|
||||||
import { signatureVerify, cryptoWaitReady } from "@polkadot/util-crypto";
|
import { signatureVerify, cryptoWaitReady } from "@polkadot/util-crypto";
|
||||||
@ -97,6 +98,11 @@ interface IContext {
|
|||||||
testSignMessage: TRpcRequestCallback;
|
testSignMessage: TRpcRequestCallback;
|
||||||
testSignTransaction: TRpcRequestCallback;
|
testSignTransaction: TRpcRequestCallback;
|
||||||
};
|
};
|
||||||
|
tezosRpc: {
|
||||||
|
testGetAccounts: TRpcRequestCallback;
|
||||||
|
testSignMessage: TRpcRequestCallback;
|
||||||
|
testSignTransaction: TRpcRequestCallback;
|
||||||
|
};
|
||||||
rpcResult?: IFormattedRpcResponse | null;
|
rpcResult?: IFormattedRpcResponse | null;
|
||||||
isRpcRequestPending: boolean;
|
isRpcRequestPending: boolean;
|
||||||
isTestnet: boolean;
|
isTestnet: boolean;
|
||||||
@ -1154,6 +1160,103 @@ export function JsonRpcContextProvider({
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// -------- TEZOS RPC METHODS --------
|
||||||
|
|
||||||
|
const tezosRpc = {
|
||||||
|
testGetAccounts: _createJsonRpcRequestHandler(
|
||||||
|
async (
|
||||||
|
chainId: string,
|
||||||
|
address: string
|
||||||
|
): Promise<IFormattedRpcResponse> => {
|
||||||
|
try {
|
||||||
|
const result = await client!.request<{ signature: string }>({
|
||||||
|
chainId,
|
||||||
|
topic: session!.topic,
|
||||||
|
request: {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_GET_ACCOUNTS,
|
||||||
|
params: {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_GET_ACCOUNTS,
|
||||||
|
address,
|
||||||
|
valid: true,
|
||||||
|
result: JSON.stringify(result, null, 2),
|
||||||
|
};
|
||||||
|
} catch (error: any) {
|
||||||
|
throw new Error(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
testSignTransaction: _createJsonRpcRequestHandler(
|
||||||
|
async (
|
||||||
|
chainId: string,
|
||||||
|
address: string
|
||||||
|
): Promise<IFormattedRpcResponse> => {
|
||||||
|
try {
|
||||||
|
const result = await client!.request<{ hash: string }>({
|
||||||
|
chainId,
|
||||||
|
topic: session!.topic,
|
||||||
|
request: {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SEND,
|
||||||
|
params: {
|
||||||
|
account: address,
|
||||||
|
operations: [
|
||||||
|
{
|
||||||
|
kind: "transaction",
|
||||||
|
amount: "1", // 1 mutez, smallest unit
|
||||||
|
destination: address, // send to ourselves
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SEND,
|
||||||
|
address,
|
||||||
|
valid: true,
|
||||||
|
result: result.hash,
|
||||||
|
};
|
||||||
|
} catch (error: any) {
|
||||||
|
throw new Error(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
testSignMessage: _createJsonRpcRequestHandler(
|
||||||
|
async (
|
||||||
|
chainId: string,
|
||||||
|
address: string
|
||||||
|
): Promise<IFormattedRpcResponse> => {
|
||||||
|
const payload = "05010000004254";
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await client!.request<{ signature: string }>({
|
||||||
|
chainId,
|
||||||
|
topic: session!.topic,
|
||||||
|
request: {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SIGN,
|
||||||
|
params: {
|
||||||
|
account: address,
|
||||||
|
payload,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SIGN,
|
||||||
|
address,
|
||||||
|
valid: true,
|
||||||
|
result: result.signature,
|
||||||
|
};
|
||||||
|
} catch (error: any) {
|
||||||
|
throw new Error(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<JsonRpcContext.Provider
|
<JsonRpcContext.Provider
|
||||||
value={{
|
value={{
|
||||||
@ -1165,6 +1268,7 @@ export function JsonRpcContextProvider({
|
|||||||
nearRpc,
|
nearRpc,
|
||||||
elrondRpc,
|
elrondRpc,
|
||||||
tronRpc,
|
tronRpc,
|
||||||
|
tezosRpc,
|
||||||
rpcResult: result,
|
rpcResult: result,
|
||||||
isRpcRequestPending: pending,
|
isRpcRequestPending: pending,
|
||||||
isTestnet,
|
isTestnet,
|
||||||
|
@ -14,6 +14,8 @@ import {
|
|||||||
DEFAULT_ELROND_METHODS,
|
DEFAULT_ELROND_METHODS,
|
||||||
DEFAULT_TRON_METHODS,
|
DEFAULT_TRON_METHODS,
|
||||||
DEFAULT_TRON_EVENTS,
|
DEFAULT_TRON_EVENTS,
|
||||||
|
DEFAULT_TEZOS_METHODS,
|
||||||
|
DEFAULT_TEZOS_EVENTS,
|
||||||
} from "../constants";
|
} from "../constants";
|
||||||
|
|
||||||
export const getNamespacesFromChains = (chains: string[]) => {
|
export const getNamespacesFromChains = (chains: string[]) => {
|
||||||
@ -44,6 +46,8 @@ export const getSupportedMethodsByNamespace = (namespace: string) => {
|
|||||||
return Object.values(DEFAULT_ELROND_METHODS);
|
return Object.values(DEFAULT_ELROND_METHODS);
|
||||||
case "tron":
|
case "tron":
|
||||||
return Object.values(DEFAULT_TRON_METHODS);
|
return Object.values(DEFAULT_TRON_METHODS);
|
||||||
|
case "tezos":
|
||||||
|
return Object.values(DEFAULT_TEZOS_METHODS);
|
||||||
default:
|
default:
|
||||||
throw new Error(`No default methods for namespace: ${namespace}`);
|
throw new Error(`No default methods for namespace: ${namespace}`);
|
||||||
}
|
}
|
||||||
@ -65,6 +69,8 @@ export const getSupportedEventsByNamespace = (namespace: string) => {
|
|||||||
return Object.values(DEFAULT_ELROND_EVENTS);
|
return Object.values(DEFAULT_ELROND_EVENTS);
|
||||||
case "tron":
|
case "tron":
|
||||||
return Object.values(DEFAULT_TRON_EVENTS);
|
return Object.values(DEFAULT_TRON_EVENTS);
|
||||||
|
case "tezos":
|
||||||
|
return Object.values(DEFAULT_TEZOS_EVENTS);
|
||||||
default:
|
default:
|
||||||
throw new Error(`No default events for namespace: ${namespace}`);
|
throw new Error(`No default events for namespace: ${namespace}`);
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import {
|
|||||||
DEFAULT_TEST_CHAINS,
|
DEFAULT_TEST_CHAINS,
|
||||||
DEFAULT_NEAR_METHODS,
|
DEFAULT_NEAR_METHODS,
|
||||||
DEFAULT_TRON_METHODS,
|
DEFAULT_TRON_METHODS,
|
||||||
|
DEFAULT_TEZOS_METHODS,
|
||||||
} from "../constants";
|
} from "../constants";
|
||||||
import { AccountAction, setLocaleStorageTestnetFlag } from "../helpers";
|
import { AccountAction, setLocaleStorageTestnetFlag } from "../helpers";
|
||||||
import Toggle from "../components/Toggle";
|
import Toggle from "../components/Toggle";
|
||||||
@ -75,6 +76,7 @@ const Home: NextPage = () => {
|
|||||||
nearRpc,
|
nearRpc,
|
||||||
elrondRpc,
|
elrondRpc,
|
||||||
tronRpc,
|
tronRpc,
|
||||||
|
tezosRpc,
|
||||||
isRpcRequestPending,
|
isRpcRequestPending,
|
||||||
rpcResult,
|
rpcResult,
|
||||||
isTestnet,
|
isTestnet,
|
||||||
@ -306,6 +308,35 @@ const Home: NextPage = () => {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getTezosActions = (): AccountAction[] => {
|
||||||
|
const onGetAccounts = async (chainId: string, address: string) => {
|
||||||
|
openRequestModal();
|
||||||
|
await tezosRpc.testGetAccounts(chainId, address);
|
||||||
|
};
|
||||||
|
const onSignTransaction = async (chainId: string, address: string) => {
|
||||||
|
openRequestModal();
|
||||||
|
await tezosRpc.testSignTransaction(chainId, address);
|
||||||
|
};
|
||||||
|
const onSignMessage = async (chainId: string, address: string) => {
|
||||||
|
openRequestModal();
|
||||||
|
await tezosRpc.testSignMessage(chainId, address);
|
||||||
|
};
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_GET_ACCOUNTS,
|
||||||
|
callback: onGetAccounts,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SEND,
|
||||||
|
callback: onSignTransaction,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
method: DEFAULT_TEZOS_METHODS.TEZOS_SIGN,
|
||||||
|
callback: onSignMessage,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
const getBlockchainActions = (chainId: string) => {
|
const getBlockchainActions = (chainId: string) => {
|
||||||
const [namespace] = chainId.split(":");
|
const [namespace] = chainId.split(":");
|
||||||
switch (namespace) {
|
switch (namespace) {
|
||||||
@ -323,6 +354,8 @@ const Home: NextPage = () => {
|
|||||||
return getElrondActions();
|
return getElrondActions();
|
||||||
case "tron":
|
case "tron":
|
||||||
return getTronActions();
|
return getTronActions();
|
||||||
|
case "tezos":
|
||||||
|
return getTezosActions();
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
NEXT_PUBLIC_PROJECT_ID=...
|
NEXT_PUBLIC_PROJECT_ID=...
|
||||||
NEXT_PUBLIC_RELAY_URL=wss://relay.walletconnect.com
|
NEXT_PUBLIC_RELAY_URL=wss://relay.walletconnect.com
|
||||||
|
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
"@polkadot/keyring": "^10.1.2",
|
"@polkadot/keyring": "^10.1.2",
|
||||||
"@polkadot/types": "^9.3.3",
|
"@polkadot/types": "^9.3.3",
|
||||||
"@solana/web3.js": "1.43.0",
|
"@solana/web3.js": "1.43.0",
|
||||||
|
"@taquito/signer": "^15.1.0",
|
||||||
|
"@taquito/taquito": "^15.1.0",
|
||||||
"@walletconnect/client": "1.8.0",
|
"@walletconnect/client": "1.8.0",
|
||||||
"@walletconnect/legacy-types": "^2.0.0-rc.0",
|
"@walletconnect/legacy-types": "^2.0.0-rc.0",
|
||||||
"@walletconnect/sign-client": "2.4.10",
|
"@walletconnect/sign-client": "2.4.10",
|
||||||
|
22
wallets/react-wallet-v2/public/chain-logos/tezos.svg
Normal file
22
wallets/react-wallet-v2/public/chain-logos/tezos.svg
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.0" id="katman_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 800 600" style="enable-background:new 0 0 800 600;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#2C7DF7;}
|
||||||
|
.st1{fill:#FFFFFF;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M399.8,559.9c143.8,0,260.3-116.6,260.3-260.3S543.6,39.2,399.8,39.2c-143.8,0-260.3,116.6-260.3,260.3
|
||||||
|
S256,559.9,399.8,559.9z"/>
|
||||||
|
<path class="st1" d="M424.8,449.1c-21.1,0-36.4-5.1-46.1-15.2c-9-8.6-14.2-20.4-14.5-32.8c-0.1-3.8,0.8-7.5,2.5-10.8
|
||||||
|
c1.7-2.9,4-5.3,6.9-6.9c3.3-1.7,7-2.5,10.8-2.5c3.7,0,7.4,0.9,10.8,2.5c2.9,1.6,5.2,4,6.9,6.9c1.8,3.3,2.7,7.1,2.6,10.8
|
||||||
|
c0.2,4.5-1.1,9-3.7,12.7c-2.2,3-5.2,5.3-8.8,6.4c3.5,4.4,8.4,7.5,13.8,8.6c6.1,1.8,12.5,2.7,18.9,2.7c8.4,0.1,16.7-2.4,23.7-7.1
|
||||||
|
c7.3-5.1,12.7-12.5,15.5-21c3.5-10.1,5.2-20.7,5.1-31.4c0.3-11.1-1.6-22.2-5.5-32.6c-3-8.3-8.6-15.5-16-20.3
|
||||||
|
c-6.9-4.4-14.9-6.6-23-6.6c-7.1,0.6-14,2.9-20,6.8l-14.8,7.4v-7.4l66.5-89.2h-92.2v92.6c-0.3,6.7,1.5,13.3,5.1,18.9
|
||||||
|
c1.7,2.5,4.1,4.4,6.8,5.7c2.7,1.3,5.7,1.9,8.7,1.7c5.5-0.1,10.9-2,15.3-5.4c5-3.6,9.3-8.1,12.8-13.2c0.3-0.9,0.9-1.7,1.7-2.2
|
||||||
|
c0.6-0.5,1.4-0.8,2.2-0.8c1.6,0.1,3.1,0.8,4.3,1.8c1.5,1.7,2.4,4,2.3,6.3c-0.2,1.6-0.5,3.1-0.8,4.6c-3.3,7.9-8.8,14.7-15.8,19.6
|
||||||
|
c-6.5,4.4-14.3,6.8-22.2,6.7c-20,0-33.8-3.9-41.5-11.8c-4-4.3-7-9.4-9-15c-2-5.5-2.8-11.4-2.5-17.3v-92.4h-46.9v-17.2H332v-39.2
|
||||||
|
l-10.8-10.8v-8.8h31.3l11.8,6.1v52.7l121.8-0.4l12.1,12.2l-74.7,75c4.5-1.8,9.3-3,14.1-3.4c9.6,0.4,18.9,3.1,27.3,7.8
|
||||||
|
c9.7,4.6,17.8,11.9,23.5,21c5.1,7.7,8.7,16.3,10.6,25.3c1.6,7.1,2.4,14.4,2.5,21.7c0,13.9-3.1,27.6-9.2,40.1
|
||||||
|
c-5.8,12.1-15.6,21.9-27.7,27.7C452.3,446,438.6,449.1,424.8,449.1L424.8,449.1z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
@ -5,6 +5,7 @@ import { nearAddresses } from '@/utils/NearWalletUtil'
|
|||||||
import { solanaAddresses } from '@/utils/SolanaWalletUtil'
|
import { solanaAddresses } from '@/utils/SolanaWalletUtil'
|
||||||
import { elrondAddresses } from '@/utils/ElrondWalletUtil'
|
import { elrondAddresses } from '@/utils/ElrondWalletUtil'
|
||||||
import { tronAddresses } from '@/utils/TronWalletUtil'
|
import { tronAddresses } from '@/utils/TronWalletUtil'
|
||||||
|
import { tezosAddresses } from '@/utils/TezosWalletUtil'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
|
|
||||||
export default function AccountPicker() {
|
export default function AccountPicker() {
|
||||||
@ -19,6 +20,7 @@ export default function AccountPicker() {
|
|||||||
SettingsStore.setNearAddress(nearAddresses[account])
|
SettingsStore.setNearAddress(nearAddresses[account])
|
||||||
SettingsStore.setElrondAddress(elrondAddresses[account])
|
SettingsStore.setElrondAddress(elrondAddresses[account])
|
||||||
SettingsStore.setTronAddress(tronAddresses[account])
|
SettingsStore.setTronAddress(tronAddresses[account])
|
||||||
|
SettingsStore.setTezosAddress(tezosAddresses[account])
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -8,6 +8,7 @@ import SessionSignPolkadotModal from '@/views/SessionSignPolkadotModal'
|
|||||||
import SessionSignSolanaModal from '@/views/SessionSignSolanaModal'
|
import SessionSignSolanaModal from '@/views/SessionSignSolanaModal'
|
||||||
import SessionSignElrondModal from '@/views/SessionSignElrondModal'
|
import SessionSignElrondModal from '@/views/SessionSignElrondModal'
|
||||||
import SessionSignTronModal from '@/views/SessionSignTronModal'
|
import SessionSignTronModal from '@/views/SessionSignTronModal'
|
||||||
|
import SessionSignTezosModal from '@/views/SessionSignTezosModal'
|
||||||
import SessionSignTypedDataModal from '@/views/SessionSignTypedDataModal'
|
import SessionSignTypedDataModal from '@/views/SessionSignTypedDataModal'
|
||||||
import SessionUnsuportedMethodModal from '@/views/SessionUnsuportedMethodModal'
|
import SessionUnsuportedMethodModal from '@/views/SessionUnsuportedMethodModal'
|
||||||
import LegacySessionProposalModal from '@/views/LegacySessionProposalModal'
|
import LegacySessionProposalModal from '@/views/LegacySessionProposalModal'
|
||||||
@ -33,6 +34,7 @@ export default function Modal() {
|
|||||||
{view === 'SessionSignNearModal' && <SessionSignNearModal />}
|
{view === 'SessionSignNearModal' && <SessionSignNearModal />}
|
||||||
{view === 'SessionSignElrondModal' && <SessionSignElrondModal />}
|
{view === 'SessionSignElrondModal' && <SessionSignElrondModal />}
|
||||||
{view === 'SessionSignTronModal' && <SessionSignTronModal />}
|
{view === 'SessionSignTronModal' && <SessionSignTronModal />}
|
||||||
|
{view === 'SessionSignTezosModal' && <SessionSignTezosModal />}
|
||||||
{view === 'LegacySessionProposalModal' && <LegacySessionProposalModal />}
|
{view === 'LegacySessionProposalModal' && <LegacySessionProposalModal />}
|
||||||
{view === 'LegacySessionSignModal' && <LegacySessionSignModal />}
|
{view === 'LegacySessionSignModal' && <LegacySessionSignModal />}
|
||||||
{view === 'LegacySessionSignTypedDataModal' && <LegacySessionSignTypedDataModal />}
|
{view === 'LegacySessionSignTypedDataModal' && <LegacySessionSignTypedDataModal />}
|
||||||
|
46
wallets/react-wallet-v2/src/data/TezosData.ts
Normal file
46
wallets/react-wallet-v2/src/data/TezosData.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
type ChainMetadata = {
|
||||||
|
chainId: string
|
||||||
|
name: string
|
||||||
|
logo: string
|
||||||
|
rgb: string
|
||||||
|
rpc: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types
|
||||||
|
*/
|
||||||
|
export type TTezosChain = keyof typeof TEZOS_MAINNET_CHAINS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chains
|
||||||
|
*/
|
||||||
|
export const TEZOS_MAINNET_CHAINS: Record<string, ChainMetadata> = {
|
||||||
|
'tezos:mainnet': {
|
||||||
|
chainId: 'mainnet',
|
||||||
|
name: 'Tezos',
|
||||||
|
logo: '/chain-logos/tezos.svg',
|
||||||
|
rgb: '44, 125, 247',
|
||||||
|
rpc: 'https://mainnet.api.tez.ie'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const TEZOS_TEST_CHAINS: Record<string, ChainMetadata> = {
|
||||||
|
'tezos:testnet': {
|
||||||
|
chainId: 'testnet',
|
||||||
|
name: 'Tezos Testnet',
|
||||||
|
logo: '/chain-logos/tezos.svg',
|
||||||
|
rgb: '44, 125, 247',
|
||||||
|
rpc: 'https://ghostnet.ecadinfra.com'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const TEZOS_CHAINS = { ...TEZOS_MAINNET_CHAINS, ...TEZOS_TEST_CHAINS }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methods
|
||||||
|
*/
|
||||||
|
export const TEZOS_SIGNING_METHODS = {
|
||||||
|
TEZOS_GET_ACCOUNTS: 'tezos_getAccounts',
|
||||||
|
TEZOS_SEND: 'tezos_send',
|
||||||
|
TEZOS_SIGN: 'tezos_sign'
|
||||||
|
}
|
@ -5,6 +5,7 @@ import { createOrRestoreSolanaWallet } from '@/utils/SolanaWalletUtil'
|
|||||||
import { createOrRestorePolkadotWallet } from '@/utils/PolkadotWalletUtil'
|
import { createOrRestorePolkadotWallet } from '@/utils/PolkadotWalletUtil'
|
||||||
import { createOrRestoreElrondWallet } from '@/utils/ElrondWalletUtil'
|
import { createOrRestoreElrondWallet } from '@/utils/ElrondWalletUtil'
|
||||||
import { createOrRestoreTronWallet } from '@/utils/TronWalletUtil'
|
import { createOrRestoreTronWallet } from '@/utils/TronWalletUtil'
|
||||||
|
import { createOrRestoreTezosWallet } from '@/utils/TezosWalletUtil'
|
||||||
import { createSignClient } from '@/utils/WalletConnectUtil'
|
import { createSignClient } from '@/utils/WalletConnectUtil'
|
||||||
import { useCallback, useEffect, useRef, useState } from 'react'
|
import { useCallback, useEffect, useRef, useState } from 'react'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
@ -25,6 +26,7 @@ export default function useInitialization() {
|
|||||||
const { nearAddresses } = await createOrRestoreNearWallet()
|
const { nearAddresses } = await createOrRestoreNearWallet()
|
||||||
const { elrondAddresses } = await createOrRestoreElrondWallet()
|
const { elrondAddresses } = await createOrRestoreElrondWallet()
|
||||||
const { tronAddresses } = await createOrRestoreTronWallet()
|
const { tronAddresses } = await createOrRestoreTronWallet()
|
||||||
|
const { tezosAddresses } = await createOrRestoreTezosWallet()
|
||||||
|
|
||||||
SettingsStore.setEIP155Address(eip155Addresses[0])
|
SettingsStore.setEIP155Address(eip155Addresses[0])
|
||||||
SettingsStore.setCosmosAddress(cosmosAddresses[0])
|
SettingsStore.setCosmosAddress(cosmosAddresses[0])
|
||||||
@ -33,6 +35,7 @@ export default function useInitialization() {
|
|||||||
SettingsStore.setNearAddress(nearAddresses[0])
|
SettingsStore.setNearAddress(nearAddresses[0])
|
||||||
SettingsStore.setElrondAddress(elrondAddresses[0])
|
SettingsStore.setElrondAddress(elrondAddresses[0])
|
||||||
SettingsStore.setTronAddress(tronAddresses[0])
|
SettingsStore.setTronAddress(tronAddresses[0])
|
||||||
|
SettingsStore.setTezosAddress(tezosAddresses[0])
|
||||||
await createSignClient(relayerRegionURL)
|
await createSignClient(relayerRegionURL)
|
||||||
prevRelayerURLValue.current = relayerRegionURL
|
prevRelayerURLValue.current = relayerRegionURL
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import { SignClientTypes } from '@walletconnect/types'
|
|||||||
import { useCallback, useEffect } from 'react'
|
import { useCallback, useEffect } from 'react'
|
||||||
import { NEAR_SIGNING_METHODS } from '@/data/NEARData'
|
import { NEAR_SIGNING_METHODS } from '@/data/NEARData'
|
||||||
import { approveNearRequest } from '@/utils/NearRequestHandlerUtil'
|
import { approveNearRequest } from '@/utils/NearRequestHandlerUtil'
|
||||||
|
import { TEZOS_SIGNING_METHODS } from '@/data/TezosData'
|
||||||
|
|
||||||
export default function useWalletConnectEventsManager(initialized: boolean) {
|
export default function useWalletConnectEventsManager(initialized: boolean) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -81,6 +82,10 @@ export default function useWalletConnectEventsManager(initialized: boolean) {
|
|||||||
case TRON_SIGNING_METHODS.TRON_SIGN_MESSAGE:
|
case TRON_SIGNING_METHODS.TRON_SIGN_MESSAGE:
|
||||||
case TRON_SIGNING_METHODS.TRON_SIGN_TRANSACTION:
|
case TRON_SIGNING_METHODS.TRON_SIGN_TRANSACTION:
|
||||||
return ModalStore.open('SessionSignTronModal', { requestEvent, requestSession })
|
return ModalStore.open('SessionSignTronModal', { requestEvent, requestSession })
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_GET_ACCOUNTS:
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_SEND:
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_SIGN:
|
||||||
|
return ModalStore.open('SessionSignTezosModal', { requestEvent, requestSession })
|
||||||
default:
|
default:
|
||||||
return ModalStore.open('SessionUnsuportedMethodModal', { requestEvent, requestSession })
|
return ModalStore.open('SessionUnsuportedMethodModal', { requestEvent, requestSession })
|
||||||
}
|
}
|
||||||
|
109
wallets/react-wallet-v2/src/lib/TezosLib.ts
Normal file
109
wallets/react-wallet-v2/src/lib/TezosLib.ts
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
import { TezosToolkit } from '@taquito/taquito'
|
||||||
|
import { InMemorySigner } from '@taquito/signer'
|
||||||
|
import { localForger } from '@taquito/local-forging'
|
||||||
|
import Keyring from 'mnemonic-keyring'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
*/
|
||||||
|
const DEFAULT_PATH = "m/44'/1729'/0'/0'"
|
||||||
|
const DEFAULT_CURVE = 'ed25519'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types
|
||||||
|
*/
|
||||||
|
interface IInitArguments {
|
||||||
|
mnemonic?: string
|
||||||
|
path?: string
|
||||||
|
curve?: 'ed25519' | 'secp256k1'
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Library
|
||||||
|
*/
|
||||||
|
export default class TezosLib {
|
||||||
|
tezos: TezosToolkit
|
||||||
|
signer: InMemorySigner
|
||||||
|
mnemonic: string
|
||||||
|
secretKey: string
|
||||||
|
publicKey: string
|
||||||
|
address: string
|
||||||
|
curve: 'ed25519' | 'secp256k1'
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
tezos: TezosToolkit,
|
||||||
|
mnemonic: string,
|
||||||
|
signer: InMemorySigner,
|
||||||
|
secretKey: string,
|
||||||
|
publicKey: string,
|
||||||
|
address: string,
|
||||||
|
curve: 'ed25519' | 'secp256k1'
|
||||||
|
) {
|
||||||
|
this.tezos = tezos
|
||||||
|
this.mnemonic = mnemonic
|
||||||
|
this.signer = signer
|
||||||
|
this.secretKey = secretKey
|
||||||
|
this.publicKey = publicKey
|
||||||
|
this.address = address
|
||||||
|
this.curve = curve
|
||||||
|
}
|
||||||
|
|
||||||
|
static async init({ mnemonic, path, curve }: IInitArguments) {
|
||||||
|
const params = {
|
||||||
|
mnemonic: mnemonic ?? Keyring.generateMnemonic(),
|
||||||
|
derivationPath: path ?? DEFAULT_PATH,
|
||||||
|
curve: curve ?? DEFAULT_CURVE
|
||||||
|
}
|
||||||
|
|
||||||
|
const Tezos = new TezosToolkit('https://mainnet.api.tez.ie')
|
||||||
|
|
||||||
|
const signer = InMemorySigner.fromMnemonic(params)
|
||||||
|
|
||||||
|
Tezos.setSignerProvider(signer)
|
||||||
|
|
||||||
|
const secretKey = await signer.secretKey()
|
||||||
|
const publicKey = await signer.publicKey()
|
||||||
|
const address = await signer.publicKeyHash()
|
||||||
|
|
||||||
|
return new TezosLib(Tezos, params.mnemonic, signer, secretKey, publicKey, address, params.curve)
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMnemonic() {
|
||||||
|
return this.mnemonic
|
||||||
|
}
|
||||||
|
|
||||||
|
public getPublicKey() {
|
||||||
|
return this.publicKey
|
||||||
|
}
|
||||||
|
|
||||||
|
public getCurve() {
|
||||||
|
return this.curve
|
||||||
|
}
|
||||||
|
|
||||||
|
public getAddress() {
|
||||||
|
return this.address
|
||||||
|
}
|
||||||
|
|
||||||
|
public async signTransaction(transaction: any) {
|
||||||
|
const prepared = await this.tezos.prepare.batch(
|
||||||
|
transaction.map((tx: any) => ({
|
||||||
|
amount: tx.amount,
|
||||||
|
to: tx.destination,
|
||||||
|
kind: tx.kind,
|
||||||
|
mutez: true
|
||||||
|
}))
|
||||||
|
)
|
||||||
|
|
||||||
|
const forged = await localForger.forge(prepared.opOb)
|
||||||
|
|
||||||
|
const tx = await this.signer.sign(forged, new Uint8Array([3]))
|
||||||
|
|
||||||
|
const hash = await this.tezos.rpc.injectOperation(tx.sbytes)
|
||||||
|
|
||||||
|
return hash
|
||||||
|
}
|
||||||
|
|
||||||
|
public async signPayload(payload: any) {
|
||||||
|
return await this.signer.sign(payload)
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,7 @@ import { Text } from '@nextui-org/react'
|
|||||||
import { Fragment } from 'react'
|
import { Fragment } from 'react'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
import { NEAR_TEST_CHAINS } from '@/data/NEARData'
|
import { NEAR_TEST_CHAINS } from '@/data/NEARData'
|
||||||
|
import { TEZOS_MAINNET_CHAINS, TEZOS_TEST_CHAINS } from '@/data/TezosData'
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const {
|
const {
|
||||||
@ -22,7 +23,8 @@ export default function HomePage() {
|
|||||||
polkadotAddress,
|
polkadotAddress,
|
||||||
nearAddress,
|
nearAddress,
|
||||||
elrondAddress,
|
elrondAddress,
|
||||||
tronAddress
|
tronAddress,
|
||||||
|
tezosAddress
|
||||||
} = useSnapshot(SettingsStore.state)
|
} = useSnapshot(SettingsStore.state)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -51,6 +53,9 @@ export default function HomePage() {
|
|||||||
{Object.values(TRON_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
{Object.values(TRON_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tronAddress} />
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tronAddress} />
|
||||||
))}
|
))}
|
||||||
|
{Object.values(TEZOS_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tezosAddress} />
|
||||||
|
))}
|
||||||
|
|
||||||
{testNets ? (
|
{testNets ? (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
@ -75,6 +80,9 @@ export default function HomePage() {
|
|||||||
{Object.values(TRON_TEST_CHAINS).map(({ name, logo, rgb }) => (
|
{Object.values(TRON_TEST_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tronAddress} />
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tronAddress} />
|
||||||
))}
|
))}
|
||||||
|
{Object.values(TEZOS_TEST_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={tezosAddress} />
|
||||||
|
))}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
) : null}
|
) : null}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
@ -10,11 +10,18 @@ import { Card, Divider, Row, Switch, Text } from '@nextui-org/react'
|
|||||||
import { Fragment } from 'react'
|
import { Fragment } from 'react'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
import packageJSON from '../../package.json'
|
import packageJSON from '../../package.json'
|
||||||
|
import { tezosWallets } from '@/utils/TezosWalletUtil'
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage() {
|
||||||
const { testNets, eip155Address, cosmosAddress, solanaAddress, elrondAddress, tronAddress } = useSnapshot(
|
const {
|
||||||
SettingsStore.state
|
testNets,
|
||||||
)
|
eip155Address,
|
||||||
|
cosmosAddress,
|
||||||
|
solanaAddress,
|
||||||
|
elrondAddress,
|
||||||
|
tronAddress,
|
||||||
|
tezosAddress
|
||||||
|
} = useSnapshot(SettingsStore.state)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
@ -96,6 +103,13 @@ export default function SettingsPage() {
|
|||||||
<Card bordered borderWeight="light" css={{ minHeight: '100px', wordWrap: 'break-word' }}>
|
<Card bordered borderWeight="light" css={{ minHeight: '100px', wordWrap: 'break-word' }}>
|
||||||
<Text css={{ fontFamily: '$mono' }}>{tronWallets[tronAddress].privateKey}</Text>
|
<Text css={{ fontFamily: '$mono' }}>{tronWallets[tronAddress].privateKey}</Text>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
<Text h4 css={{ marginTop: '$10', marginBottom: '$5' }}>
|
||||||
|
Tezos Mnemonic
|
||||||
|
</Text>
|
||||||
|
<Card bordered borderWeight="light" css={{ minHeight: '100px', wordWrap: 'break-word' }}>
|
||||||
|
<Text css={{ fontFamily: '$mono' }}>{tezosWallets[tezosAddress].getMnemonic()}</Text>
|
||||||
|
</Card>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@ interface State {
|
|||||||
| 'SessionSignNearModal'
|
| 'SessionSignNearModal'
|
||||||
| 'SessionSignElrondModal'
|
| 'SessionSignElrondModal'
|
||||||
| 'SessionSignTronModal'
|
| 'SessionSignTronModal'
|
||||||
|
| 'SessionSignTezosModal'
|
||||||
| 'LegacySessionProposalModal'
|
| 'LegacySessionProposalModal'
|
||||||
| 'LegacySessionSignModal'
|
| 'LegacySessionSignModal'
|
||||||
| 'LegacySessionSignTypedDataModal'
|
| 'LegacySessionSignTypedDataModal'
|
||||||
|
@ -13,6 +13,7 @@ interface State {
|
|||||||
nearAddress: string
|
nearAddress: string
|
||||||
elrondAddress: string
|
elrondAddress: string
|
||||||
tronAddress: string
|
tronAddress: string
|
||||||
|
tezosAddress: string
|
||||||
relayerRegionURL: string
|
relayerRegionURL: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +30,7 @@ const state = proxy<State>({
|
|||||||
nearAddress: '',
|
nearAddress: '',
|
||||||
elrondAddress: '',
|
elrondAddress: '',
|
||||||
tronAddress: '',
|
tronAddress: '',
|
||||||
|
tezosAddress: '',
|
||||||
relayerRegionURL: ''
|
relayerRegionURL: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -72,6 +74,10 @@ const SettingsStore = {
|
|||||||
state.tronAddress = tronAddress
|
state.tronAddress = tronAddress
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setTezosAddress(tezosAddress: string) {
|
||||||
|
state.tezosAddress = tezosAddress
|
||||||
|
},
|
||||||
|
|
||||||
toggleTestNets() {
|
toggleTestNets() {
|
||||||
state.testNets = !state.testNets
|
state.testNets = !state.testNets
|
||||||
if (state.testNets) {
|
if (state.testNets) {
|
||||||
|
@ -125,6 +125,13 @@ export function isElrondChain(chain: string) {
|
|||||||
return chain.includes('tron')
|
return chain.includes('tron')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if chain is part of Tezos standard
|
||||||
|
*/
|
||||||
|
export function isTezosChain(chain: string) {
|
||||||
|
return chain.includes('tezos')
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats chainId to its name
|
* Formats chainId to its name
|
||||||
*/
|
*/
|
||||||
|
46
wallets/react-wallet-v2/src/utils/TezosRequestHandlerUtil.ts
Normal file
46
wallets/react-wallet-v2/src/utils/TezosRequestHandlerUtil.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { TEZOS_SIGNING_METHODS } from '@/data/TezosData'
|
||||||
|
import { tezosWallets } from '@/utils/TezosWalletUtil'
|
||||||
|
import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils'
|
||||||
|
import { SignClientTypes } from '@walletconnect/types'
|
||||||
|
import { getSdkError } from '@walletconnect/utils'
|
||||||
|
|
||||||
|
export async function approveTezosRequest(
|
||||||
|
requestEvent: SignClientTypes.EventArguments['session_request']
|
||||||
|
) {
|
||||||
|
const { params, id } = requestEvent
|
||||||
|
const { request } = params
|
||||||
|
|
||||||
|
const wallet = tezosWallets[request.params.account ?? Object.keys(tezosWallets)[0]]
|
||||||
|
const allWallets = Object.keys(tezosWallets).map(key => tezosWallets[key])
|
||||||
|
|
||||||
|
switch (request.method) {
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_GET_ACCOUNTS:
|
||||||
|
return formatJsonRpcResult(
|
||||||
|
id,
|
||||||
|
allWallets.map(wallet => ({
|
||||||
|
algo: wallet.getCurve(),
|
||||||
|
address: wallet.getAddress(),
|
||||||
|
pubkey: wallet.getPublicKey()
|
||||||
|
}))
|
||||||
|
)
|
||||||
|
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_SEND:
|
||||||
|
const sendResponse = await wallet.signTransaction(request.params.operations)
|
||||||
|
|
||||||
|
return formatJsonRpcResult(id, { hash: sendResponse })
|
||||||
|
|
||||||
|
case TEZOS_SIGNING_METHODS.TEZOS_SIGN:
|
||||||
|
const signResponse = await wallet.signPayload(request.params.payload)
|
||||||
|
|
||||||
|
return formatJsonRpcResult(id, { signature: signResponse.prefixSig })
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Error(getSdkError('INVALID_METHOD').message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rejectTezosRequest(request: SignClientTypes.EventArguments['session_request']) {
|
||||||
|
const { id } = request
|
||||||
|
|
||||||
|
return formatJsonRpcError(id, getSdkError('USER_REJECTED_METHODS').message)
|
||||||
|
}
|
50
wallets/react-wallet-v2/src/utils/TezosWalletUtil.ts
Normal file
50
wallets/react-wallet-v2/src/utils/TezosWalletUtil.ts
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import TezosLib from '@/lib/TezosLib'
|
||||||
|
|
||||||
|
export let wallet1: TezosLib
|
||||||
|
export let wallet2: TezosLib
|
||||||
|
export let tezosWallets: Record<string, TezosLib>
|
||||||
|
export let tezosAddresses: string[]
|
||||||
|
|
||||||
|
let address1: string
|
||||||
|
let address2: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities
|
||||||
|
*/
|
||||||
|
export function getTezosWallet(address: string) {
|
||||||
|
let wallet = Object.entries(tezosWallets).find(([walletAddress, _]) => {
|
||||||
|
return address === walletAddress
|
||||||
|
})
|
||||||
|
return wallet?.[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function createOrRestoreTezosWallet() {
|
||||||
|
const mnemonic1 = localStorage.getItem('TEZOS_MNEMONIC_1')
|
||||||
|
const mnemonic2 = localStorage.getItem('TEZOS_MNEMONIC_2')
|
||||||
|
|
||||||
|
if (mnemonic1 && mnemonic2) {
|
||||||
|
wallet1 = await TezosLib.init({ mnemonic: mnemonic1 })
|
||||||
|
wallet2 = await TezosLib.init({ mnemonic: mnemonic2 })
|
||||||
|
} else {
|
||||||
|
wallet1 = await TezosLib.init({})
|
||||||
|
wallet2 = await TezosLib.init({})
|
||||||
|
|
||||||
|
// Don't store mnemonic in local storage in a production project!
|
||||||
|
localStorage.setItem('TEZOS_MNEMONIC_1', wallet1.getMnemonic())
|
||||||
|
localStorage.setItem('TEZOS_MNEMONIC_2', wallet2.getMnemonic())
|
||||||
|
}
|
||||||
|
|
||||||
|
address1 = wallet1.getAddress()
|
||||||
|
address2 = wallet2.getAddress()
|
||||||
|
|
||||||
|
tezosWallets = {
|
||||||
|
[address1]: wallet1,
|
||||||
|
[address2]: wallet2
|
||||||
|
}
|
||||||
|
tezosAddresses = Object.keys(tezosWallets)
|
||||||
|
|
||||||
|
return {
|
||||||
|
tezosWallets,
|
||||||
|
tezosAddresses
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,7 @@ import { eip155Addresses } from '@/utils/EIP155WalletUtil'
|
|||||||
import { polkadotAddresses } from '@/utils/PolkadotWalletUtil'
|
import { polkadotAddresses } from '@/utils/PolkadotWalletUtil'
|
||||||
import { elrondAddresses } from '@/utils/ElrondWalletUtil'
|
import { elrondAddresses } from '@/utils/ElrondWalletUtil'
|
||||||
import { tronAddresses } from '@/utils/TronWalletUtil'
|
import { tronAddresses } from '@/utils/TronWalletUtil'
|
||||||
|
import { tezosAddresses } from '@/utils/TezosWalletUtil'
|
||||||
import {
|
import {
|
||||||
isCosmosChain,
|
isCosmosChain,
|
||||||
isEIP155Chain,
|
isEIP155Chain,
|
||||||
@ -15,7 +16,8 @@ import {
|
|||||||
isPolkadotChain,
|
isPolkadotChain,
|
||||||
isNearChain,
|
isNearChain,
|
||||||
isElrondChain,
|
isElrondChain,
|
||||||
isTronChain
|
isTronChain,
|
||||||
|
isTezosChain
|
||||||
} from '@/utils/HelperUtil'
|
} from '@/utils/HelperUtil'
|
||||||
import { solanaAddresses } from '@/utils/SolanaWalletUtil'
|
import { solanaAddresses } from '@/utils/SolanaWalletUtil'
|
||||||
import { signClient } from '@/utils/WalletConnectUtil'
|
import { signClient } from '@/utils/WalletConnectUtil'
|
||||||
@ -161,6 +163,15 @@ export default function SessionProposalModal() {
|
|||||||
chain={chain}
|
chain={chain}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
} else if (isTezosChain(chain)) {
|
||||||
|
return (
|
||||||
|
<ProposalSelectSection
|
||||||
|
addresses={tezosAddresses}
|
||||||
|
selectedAddresses={selectedAccounts[chain]}
|
||||||
|
onSelect={onSelectAccount}
|
||||||
|
chain={chain}
|
||||||
|
/>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
78
wallets/react-wallet-v2/src/views/SessionSignTezosModal.tsx
Normal file
78
wallets/react-wallet-v2/src/views/SessionSignTezosModal.tsx
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import ProjectInfoCard from '@/components/ProjectInfoCard'
|
||||||
|
import RequestDataCard from '@/components/RequestDataCard'
|
||||||
|
import RequesDetailsCard from '@/components/RequestDetalilsCard'
|
||||||
|
import RequestMethodCard from '@/components/RequestMethodCard'
|
||||||
|
import RequestModalContainer from '@/components/RequestModalContainer'
|
||||||
|
import ModalStore from '@/store/ModalStore'
|
||||||
|
import { approveTezosRequest, rejectTezosRequest } from '@/utils/TezosRequestHandlerUtil'
|
||||||
|
import { signClient } from '@/utils/WalletConnectUtil'
|
||||||
|
import { Button, Divider, Modal, Text } from '@nextui-org/react'
|
||||||
|
import { Fragment } from 'react'
|
||||||
|
|
||||||
|
export default function SessionSignTezosModal() {
|
||||||
|
// Get request and wallet data from store
|
||||||
|
const requestEvent = ModalStore.state.data?.requestEvent
|
||||||
|
const requestSession = ModalStore.state.data?.requestSession
|
||||||
|
|
||||||
|
// Ensure request and wallet are defined
|
||||||
|
if (!requestEvent || !requestSession) {
|
||||||
|
return <Text>Missing request data</Text>
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get required request data
|
||||||
|
const { topic, params } = requestEvent
|
||||||
|
const { request, chainId } = params
|
||||||
|
|
||||||
|
// Handle approve action (logic varies based on request method)
|
||||||
|
async function onApprove() {
|
||||||
|
if (requestEvent) {
|
||||||
|
const response = await approveTezosRequest(requestEvent)
|
||||||
|
await signClient.respond({
|
||||||
|
topic,
|
||||||
|
response
|
||||||
|
})
|
||||||
|
ModalStore.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle reject action
|
||||||
|
async function onReject() {
|
||||||
|
if (requestEvent) {
|
||||||
|
const response = rejectTezosRequest(requestEvent)
|
||||||
|
await signClient.respond({
|
||||||
|
topic,
|
||||||
|
response
|
||||||
|
})
|
||||||
|
ModalStore.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Fragment>
|
||||||
|
<RequestModalContainer title="Sign Message">
|
||||||
|
<ProjectInfoCard metadata={requestSession.peer.metadata} />
|
||||||
|
|
||||||
|
<Divider y={2} />
|
||||||
|
|
||||||
|
<RequesDetailsCard chains={[chainId ?? '']} protocol={requestSession.relay.protocol} />
|
||||||
|
|
||||||
|
<Divider y={2} />
|
||||||
|
|
||||||
|
<RequestDataCard data={params} />
|
||||||
|
|
||||||
|
<Divider y={2} />
|
||||||
|
|
||||||
|
<RequestMethodCard methods={[request.method]} />
|
||||||
|
</RequestModalContainer>
|
||||||
|
|
||||||
|
<Modal.Footer>
|
||||||
|
<Button auto flat color="error" onClick={onReject}>
|
||||||
|
Reject
|
||||||
|
</Button>
|
||||||
|
<Button auto flat color="success" onClick={onApprove}>
|
||||||
|
Approve
|
||||||
|
</Button>
|
||||||
|
</Modal.Footer>
|
||||||
|
</Fragment>
|
||||||
|
)
|
||||||
|
}
|
@ -1310,6 +1310,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111"
|
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111"
|
||||||
integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==
|
integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==
|
||||||
|
|
||||||
|
"@noble/hashes@^1.2.0":
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12"
|
||||||
|
integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==
|
||||||
|
|
||||||
"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3":
|
"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3":
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1"
|
resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1"
|
||||||
@ -2093,6 +2098,15 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@stablelib/int" "^1.0.1"
|
"@stablelib/int" "^1.0.1"
|
||||||
|
|
||||||
|
"@stablelib/blake2b@^1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@stablelib/blake2b/-/blake2b-1.0.1.tgz#0045a77e182c4cf3260bc9b533fc4cd5c287f8ea"
|
||||||
|
integrity sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/binary" "^1.0.1"
|
||||||
|
"@stablelib/hash" "^1.0.1"
|
||||||
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
"@stablelib/bytes@^1.0.1":
|
"@stablelib/bytes@^1.0.1":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8"
|
resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8"
|
||||||
@ -2123,7 +2137,7 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35"
|
resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35"
|
||||||
integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==
|
integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==
|
||||||
|
|
||||||
"@stablelib/ed25519@^1.0.2":
|
"@stablelib/ed25519@^1.0.2", "@stablelib/ed25519@^1.0.3":
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996"
|
resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996"
|
||||||
integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==
|
integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==
|
||||||
@ -2167,6 +2181,27 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@stablelib/bytes" "^1.0.1"
|
"@stablelib/bytes" "^1.0.1"
|
||||||
|
|
||||||
|
"@stablelib/nacl@^1.0.4":
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@stablelib/nacl/-/nacl-1.0.4.tgz#b63e0a1b87eccb13ad91dd46b2382112acfa417e"
|
||||||
|
integrity sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/poly1305" "^1.0.1"
|
||||||
|
"@stablelib/random" "^1.0.2"
|
||||||
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
"@stablelib/x25519" "^1.0.3"
|
||||||
|
"@stablelib/xsalsa20" "^1.0.2"
|
||||||
|
|
||||||
|
"@stablelib/pbkdf2@^1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@stablelib/pbkdf2/-/pbkdf2-1.0.1.tgz#ba4d4379385db3ca46fb48e504ff7933c451be1d"
|
||||||
|
integrity sha512-d5jwK6jW1DkMyzqY8D1Io+fRXcsUVr95lk5LKX9ghaUdAITTc1ZL0bff+R0IrwSixbHluxhnivG7vDw59AZ/Nw==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/binary" "^1.0.1"
|
||||||
|
"@stablelib/hash" "^1.0.1"
|
||||||
|
"@stablelib/hmac" "^1.0.1"
|
||||||
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
"@stablelib/poly1305@^1.0.1":
|
"@stablelib/poly1305@^1.0.1":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc"
|
resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc"
|
||||||
@ -2183,6 +2218,15 @@
|
|||||||
"@stablelib/binary" "^1.0.1"
|
"@stablelib/binary" "^1.0.1"
|
||||||
"@stablelib/wipe" "^1.0.1"
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
|
"@stablelib/salsa20@^1.0.2":
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@stablelib/salsa20/-/salsa20-1.0.2.tgz#95177331f89a59d1c90f153f53265c925d4de138"
|
||||||
|
integrity sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/binary" "^1.0.1"
|
||||||
|
"@stablelib/constant-time" "^1.0.1"
|
||||||
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
"@stablelib/sha256@1.0.1":
|
"@stablelib/sha256@1.0.1":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f"
|
resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f"
|
||||||
@ -2215,6 +2259,15 @@
|
|||||||
"@stablelib/random" "^1.0.2"
|
"@stablelib/random" "^1.0.2"
|
||||||
"@stablelib/wipe" "^1.0.1"
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
|
"@stablelib/xsalsa20@^1.0.2":
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz#89efc22a7ba432880ef11d876fdeba13529ccdc4"
|
||||||
|
integrity sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/binary" "^1.0.1"
|
||||||
|
"@stablelib/salsa20" "^1.0.2"
|
||||||
|
"@stablelib/wipe" "^1.0.1"
|
||||||
|
|
||||||
"@stitches/react@1.2.7":
|
"@stitches/react@1.2.7":
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.7.tgz#aea2403fac726db66d1740d29557e3910b1a1dc7"
|
resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.7.tgz#aea2403fac726db66d1740d29557e3910b1a1dc7"
|
||||||
@ -2225,6 +2278,94 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.34.0.tgz#b6faed02343da7a8956444f5db23bc7246dd5fb5"
|
resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.34.0.tgz#b6faed02343da7a8956444f5db23bc7246dd5fb5"
|
||||||
integrity sha512-8Df5usnWvjnw/WRAmKOqHXRPPRfiCd1kIN8ttH4YmBrRTERjVInsdu0xvLdbyUYKyvgK6zKhHWQfYohXqllHhg==
|
integrity sha512-8Df5usnWvjnw/WRAmKOqHXRPPRfiCd1kIN8ttH4YmBrRTERjVInsdu0xvLdbyUYKyvgK6zKhHWQfYohXqllHhg==
|
||||||
|
|
||||||
|
"@taquito/http-utils@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-15.1.0.tgz#66f3ce220c483e33d6b31bca6e0c76b5b895ed9b"
|
||||||
|
integrity sha512-Uug5hN0XvMlFFN+rxSMW+Y9Z8pw5uqHRDZC83eLOBSijbpMo+ScG/2nKkC8MUUrqLaLeHru1HD4kT5DHc1fI+A==
|
||||||
|
dependencies:
|
||||||
|
"@vespaiach/axios-fetch-adapter" "github:ecadlabs/axios-fetch-adapter"
|
||||||
|
axios "^0.26.0"
|
||||||
|
|
||||||
|
"@taquito/local-forging@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-15.1.0.tgz#11404d4b90d4b1f4f6e3f7aa591e8227bf08e246"
|
||||||
|
integrity sha512-ib/2RqtxQQC9SjyTB9T5OSc5yUx9GUSdMOA4dmtiiFcN2+AG+aw7ixn6Hjt9Td8ZIOPt9H6HkyTypKrX7+cENw==
|
||||||
|
dependencies:
|
||||||
|
"@taquito/utils" "^15.1.0"
|
||||||
|
bignumber.js "^9.1.0"
|
||||||
|
|
||||||
|
"@taquito/michel-codec@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-15.1.0.tgz#b4452757ff02c40b110ec5ecafad1f659e1de4e3"
|
||||||
|
integrity sha512-wKucIhs7vhaq5H+YSF2f6Qu9+g+QiEL6MPc5ROpxBrXJTeKSwBOEIpfqcKfkfMuecJyHZJW3glNfkpAVTCgkxg==
|
||||||
|
|
||||||
|
"@taquito/michelson-encoder@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-15.1.0.tgz#1b3250445d4cc7e945e6a0ed9f8deaf209e62ada"
|
||||||
|
integrity sha512-uQMEu3g+8WcYb5ZV6+XGvoWJhKoNxU0F2RqodLJB7UxQ1rI/OMa+VlxSLMt4niIxpKXqnO9j4tD7Y4mPC3ufaA==
|
||||||
|
dependencies:
|
||||||
|
"@taquito/rpc" "^15.1.0"
|
||||||
|
"@taquito/utils" "^15.1.0"
|
||||||
|
bignumber.js "^9.1.0"
|
||||||
|
fast-json-stable-stringify "^2.1.0"
|
||||||
|
|
||||||
|
"@taquito/rpc@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-15.1.0.tgz#47f973d1f7d15cb56a4095c7a2a4d1803c5181c7"
|
||||||
|
integrity sha512-OeQA8QwT+s6IUmLaF5yeWruPYzWi/DVCA3kl+AaQ8IFfCMzmAW/MszbbNkJSzHpY2p4jPBwdRNxg3qeJdL482A==
|
||||||
|
dependencies:
|
||||||
|
"@taquito/http-utils" "^15.1.0"
|
||||||
|
"@taquito/utils" "^15.1.0"
|
||||||
|
bignumber.js "^9.1.0"
|
||||||
|
|
||||||
|
"@taquito/signer@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-15.1.0.tgz#0cb7bc9612e7f5ffbefc274f0aa6da27f5d755fd"
|
||||||
|
integrity sha512-VP7hS8cYQ6cMerVkbD5X3AqpoIXvh72xNuv3++R4reEjdl+E3VWs1CZZGnJj6yzlFV21SrdGKSILx8Rl3Ql4DA==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/blake2b" "^1.0.1"
|
||||||
|
"@stablelib/ed25519" "^1.0.3"
|
||||||
|
"@stablelib/hmac" "^1.0.1"
|
||||||
|
"@stablelib/nacl" "^1.0.4"
|
||||||
|
"@stablelib/pbkdf2" "^1.0.1"
|
||||||
|
"@stablelib/sha512" "^1.0.1"
|
||||||
|
"@taquito/taquito" "^15.1.0"
|
||||||
|
"@taquito/utils" "^15.1.0"
|
||||||
|
"@types/bn.js" "^5.1.1"
|
||||||
|
bip39 "^3.0.4"
|
||||||
|
elliptic "^6.5.4"
|
||||||
|
pbkdf2 "^3.1.2"
|
||||||
|
typedarray-to-buffer "^4.0.0"
|
||||||
|
|
||||||
|
"@taquito/taquito@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-15.1.0.tgz#9a3340a8bcaa8bd6e9567776cea1c1659aafe5e9"
|
||||||
|
integrity sha512-2AXWeNoXsmMOSkJVXtXjOlJkS+hKXITaSybMA6nJuS1YWY4e7iAr678Y6UgVEHRJxeGohX4R4Ww12Ymr3Sfedg==
|
||||||
|
dependencies:
|
||||||
|
"@taquito/http-utils" "^15.1.0"
|
||||||
|
"@taquito/local-forging" "^15.1.0"
|
||||||
|
"@taquito/michel-codec" "^15.1.0"
|
||||||
|
"@taquito/michelson-encoder" "^15.1.0"
|
||||||
|
"@taquito/rpc" "^15.1.0"
|
||||||
|
"@taquito/utils" "^15.1.0"
|
||||||
|
bignumber.js "^9.1.0"
|
||||||
|
rxjs "^6.6.3"
|
||||||
|
|
||||||
|
"@taquito/utils@^15.1.0":
|
||||||
|
version "15.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-15.1.0.tgz#c72f07c4fe369920620809a23808817db4b7a221"
|
||||||
|
integrity sha512-lqVThoFMmOKPg9jyREr4A63cpeckf5esCwOyOAW3sm+yCxD9s5khnBPtH8s52cRVnChFdwk/eqmADka9gat5hw==
|
||||||
|
dependencies:
|
||||||
|
"@stablelib/blake2b" "^1.0.1"
|
||||||
|
"@stablelib/ed25519" "^1.0.3"
|
||||||
|
"@types/bs58check" "^2.1.0"
|
||||||
|
bignumber.js "^9.1.0"
|
||||||
|
blakejs "^1.2.1"
|
||||||
|
bs58check "^2.1.2"
|
||||||
|
buffer "^6.0.3"
|
||||||
|
elliptic "^6.5.4"
|
||||||
|
typedarray-to-buffer "^4.0.0"
|
||||||
|
|
||||||
"@tsconfig/node10@^1.0.7":
|
"@tsconfig/node10@^1.0.7":
|
||||||
version "1.0.9"
|
version "1.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
|
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
|
||||||
@ -2252,6 +2393,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/bs58check@^2.1.0":
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/bs58check/-/bs58check-2.1.0.tgz#7d25a8b88fe7a9e315d2647335ee3c43c8fdb0c0"
|
||||||
|
integrity sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/connect@^3.4.33":
|
"@types/connect@^3.4.33":
|
||||||
version "3.4.35"
|
version "3.4.35"
|
||||||
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
|
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
|
||||||
@ -2369,6 +2517,10 @@
|
|||||||
"@typescript-eslint/types" "5.42.1"
|
"@typescript-eslint/types" "5.42.1"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
|
"@vespaiach/axios-fetch-adapter@github:ecadlabs/axios-fetch-adapter":
|
||||||
|
version "0.3.1"
|
||||||
|
resolved "https://codeload.github.com/ecadlabs/axios-fetch-adapter/tar.gz/05cf8ba547aae387933939850231e8abaf323efe"
|
||||||
|
|
||||||
"@walletconnect/browser-utils@^1.8.0":
|
"@walletconnect/browser-utils@^1.8.0":
|
||||||
version "1.8.0"
|
version "1.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951"
|
resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951"
|
||||||
@ -2885,7 +3037,7 @@ axe-core@^4.4.3:
|
|||||||
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.5.1.tgz#04d561c11b6d76d096d34e9d14ba2c294fb20cdc"
|
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.5.1.tgz#04d561c11b6d76d096d34e9d14ba2c294fb20cdc"
|
||||||
integrity sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==
|
integrity sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==
|
||||||
|
|
||||||
axios@^0.26.1:
|
axios@^0.26.0, axios@^0.26.1:
|
||||||
version "0.26.1"
|
version "0.26.1"
|
||||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
|
resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
|
||||||
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
|
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
|
||||||
@ -2983,6 +3135,11 @@ bignumber.js@^9.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62"
|
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62"
|
||||||
integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==
|
integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==
|
||||||
|
|
||||||
|
bignumber.js@^9.1.0:
|
||||||
|
version "9.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6"
|
||||||
|
integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==
|
||||||
|
|
||||||
binary-extensions@^2.0.0:
|
binary-extensions@^2.0.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||||
@ -3028,6 +3185,13 @@ bip39@^3.0.2, bip39@^3.0.3:
|
|||||||
pbkdf2 "^3.0.9"
|
pbkdf2 "^3.0.9"
|
||||||
randombytes "^2.0.1"
|
randombytes "^2.0.1"
|
||||||
|
|
||||||
|
bip39@^3.0.4:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3"
|
||||||
|
integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==
|
||||||
|
dependencies:
|
||||||
|
"@noble/hashes" "^1.2.0"
|
||||||
|
|
||||||
bl@^4.0.3:
|
bl@^4.0.3:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
||||||
@ -3052,6 +3216,11 @@ blake2b@2.1.3:
|
|||||||
blake2b-wasm "^1.1.0"
|
blake2b-wasm "^1.1.0"
|
||||||
nanoassert "^1.0.0"
|
nanoassert "^1.0.0"
|
||||||
|
|
||||||
|
blakejs@^1.2.1:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814"
|
||||||
|
integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==
|
||||||
|
|
||||||
bn.js@4.11.8:
|
bn.js@4.11.8:
|
||||||
version "4.11.8"
|
version "4.11.8"
|
||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
||||||
@ -3136,7 +3305,7 @@ bs58@^4.0.0, bs58@^4.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
base-x "^3.0.2"
|
base-x "^3.0.2"
|
||||||
|
|
||||||
bs58check@<3.0.0, bs58check@^2.1.1:
|
bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"
|
resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"
|
||||||
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
|
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
|
||||||
@ -3153,7 +3322,7 @@ buffer@6.0.1:
|
|||||||
base64-js "^1.3.1"
|
base64-js "^1.3.1"
|
||||||
ieee754 "^1.2.1"
|
ieee754 "^1.2.1"
|
||||||
|
|
||||||
buffer@6.0.3, buffer@~6.0.3:
|
buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3:
|
||||||
version "6.0.3"
|
version "6.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
||||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
||||||
@ -4044,7 +4213,7 @@ fast-glob@^3.2.9:
|
|||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
micromatch "^4.0.4"
|
micromatch "^4.0.4"
|
||||||
|
|
||||||
fast-json-stable-stringify@^2.0.0:
|
fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||||
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
||||||
@ -5319,7 +5488,7 @@ pathval@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
|
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
|
||||||
integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
|
integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
|
||||||
|
|
||||||
pbkdf2@^3.0.9:
|
pbkdf2@^3.0.9, pbkdf2@^3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
|
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
|
||||||
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
|
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
|
||||||
@ -5740,6 +5909,13 @@ run-parallel@^1.1.9:
|
|||||||
dependencies:
|
dependencies:
|
||||||
queue-microtask "^1.2.2"
|
queue-microtask "^1.2.2"
|
||||||
|
|
||||||
|
rxjs@^6.6.3:
|
||||||
|
version "6.6.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
|
||||||
|
integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
|
||||||
|
dependencies:
|
||||||
|
tslib "^1.9.0"
|
||||||
|
|
||||||
rxjs@^7.5.7:
|
rxjs@^7.5.7:
|
||||||
version "7.5.7"
|
version "7.5.7"
|
||||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39"
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39"
|
||||||
@ -6192,7 +6368,7 @@ tsconfig-paths@^3.14.1:
|
|||||||
minimist "^1.2.6"
|
minimist "^1.2.6"
|
||||||
strip-bom "^3.0.0"
|
strip-bom "^3.0.0"
|
||||||
|
|
||||||
tslib@1.14.1, tslib@^1.8.1:
|
tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0:
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
@ -6245,6 +6421,11 @@ typedarray-to-buffer@3.1.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-typedarray "^1.0.0"
|
is-typedarray "^1.0.0"
|
||||||
|
|
||||||
|
typedarray-to-buffer@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz#cdd2933c61dd3f5f02eda5d012d441f95bfeb50a"
|
||||||
|
integrity sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==
|
||||||
|
|
||||||
typeforce@^1.11.5:
|
typeforce@^1.11.5:
|
||||||
version "1.18.0"
|
version "1.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc"
|
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc"
|
||||||
|
Loading…
Reference in New Issue
Block a user