refactor: Elrond rebranding to MultiversX (#148)

This commit is contained in:
Radu Mojic
2023-05-30 09:13:49 +02:00
committed by GitHub
parent 5d579166cb
commit a60069941f
60 changed files with 3711 additions and 3469 deletions
+2 -2
View File
@@ -11,8 +11,8 @@
},
"dependencies": {
"@celo/wallet-base": "^3.0.1",
"@elrondnetwork/erdjs": "11.1.1",
"@elrondnetwork/erdjs-walletcore": "2.1.0",
"@multiversx/sdk-core": "11.5.0",
"@multiversx/sdk-wallet": "4.0.0",
"@ethereumjs/tx": "^3.5.0",
"@polkadot/util-crypto": "^10.1.2",
"@solana/web3.js": "^1.36.0",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

@@ -0,0 +1,4 @@
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="300" rx="150" fill="black"/>
<path d="M158.482 149.928L228.714 112.529L216.919 90L152.575 115.854C150.923 116.523 149.077 116.523 147.425 115.854L83.0814 90L71.25 112.602L141.482 150L71.25 187.398L83.0814 210L147.425 183.948C149.077 183.279 150.923 183.279 152.575 183.948L216.919 209.874L228.75 187.272L158.482 149.928Z" fill="#23F7DD"/>
</svg>

After

Width:  |  Height:  |  Size: 472 B

-53
View File
@@ -1,53 +0,0 @@
import { NamespaceMetadata, ChainMetadata, ChainsMap } from "../helpers";
export const ElrondChainData: ChainsMap = {
"1": {
id: "elrond:1",
name: "Elrond Mainnet",
rpc: ["https://api.elrond.com"],
slip44: 508,
testnet: false,
},
D: {
id: "elrond:D",
name: "Elrond Devnet",
rpc: ["https://devnet-api.elrond.com"],
slip44: 508,
testnet: true,
},
// Keep only one Test Chain visible
// T: {
// id: "elrond:T",
// name: "Elrond Testnet",
// rpc: ["https://testnet-api.elrond.com"],
// slip44: 508,
// testnet: true,
// },
};
export const ElrondMetadata: NamespaceMetadata = {
// Elrond Mainnet
"1": {
logo: "/assets/elrond_logo.png",
rgb: "0, 0, 0",
},
// Elrond Testnet
T: {
logo: "/assets/elrond_logo.png",
rgb: "0, 0, 0",
},
// Elrond Devnet
D: {
logo: "/assets/elrond_logo.png",
rgb: "0, 0, 0",
},
};
export function getChainMetadata(chainId: string): ChainMetadata {
const reference = chainId.split(":")[1];
const metadata = ElrondMetadata[reference];
if (typeof metadata === "undefined") {
throw new Error(`No chain metadata found for chainId: ${chainId}`);
}
return metadata;
}
+3 -3
View File
@@ -5,7 +5,7 @@ import * as cosmos from "./cosmos";
import * as polkadot from "./polkadot";
import * as solana from "./solana";
import * as near from "./near";
import * as elrond from "./elrond";
import * as multiversx from "./multiversx";
import * as tron from "./tron";
import * as tezos from "./tezos";
@@ -24,8 +24,8 @@ export function getChainMetadata(chainId: string): ChainMetadata {
return solana.getChainMetadata(chainId);
case "near":
return near.getChainMetadata(chainId);
case "elrond":
return elrond.getChainMetadata(chainId);
case "mvx":
return multiversx.getChainMetadata(chainId);
case "tron":
return tron.getChainMetadata(chainId);
case "tezos":
@@ -0,0 +1,53 @@
import { NamespaceMetadata, ChainMetadata, ChainsMap } from "../helpers";
export const MultiversxChainData: ChainsMap = {
"1": {
id: "mvx:1",
name: "MultiversX Mainnet",
rpc: ["https://api.multiversx.com"],
slip44: 508,
testnet: false,
},
D: {
id: "mvx:D",
name: "MultiversX Devnet",
rpc: ["https://devnet-api.multiversx.com"],
slip44: 508,
testnet: true,
},
// Keep only one Test Chain visible
// T: {
// id: "mvx:T",
// name: "MultiversX Testnet",
// rpc: ["https://testnet-api.multiversx.com"],
// slip44: 508,
// testnet: true,
// },
};
export const MultiversxMetadata: NamespaceMetadata = {
// MultiversX Mainnet
"1": {
logo: "/assets/multiversx_logo.svg",
rgb: "0, 0, 0",
},
// MultiversX Testnet
T: {
logo: "/assets/multiversx_logo.svg",
rgb: "0, 0, 0",
},
// MultiversX Devnet
D: {
logo: "/assets/multiversx_logo.svg",
rgb: "0, 0, 0",
},
};
export function getChainMetadata(chainId: string): ChainMetadata {
const reference = chainId.split(":")[1];
const metadata = MultiversxMetadata[reference];
if (typeof metadata === "undefined") {
throw new Error(`No chain metadata found for chainId: ${chainId}`);
}
return metadata;
}
+10 -9
View File
@@ -12,7 +12,7 @@ export const DEFAULT_MAIN_CHAINS = [
"cosmos:cosmoshub-4",
"solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ",
"polkadot:91b171bb158e2d3848fa23a9f1c25182",
"elrond:1",
"mvx:1",
"tron:0x2b6653dc",
"tezos:mainnet",
];
@@ -27,7 +27,7 @@ export const DEFAULT_TEST_CHAINS = [
"solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K",
"polkadot:e143f23803ac50e8f6f8e62695d1ce9e",
"near:testnet",
"elrond:D",
"mvx:D",
"tron:0xcd8690dc",
"tezos:testnet",
];
@@ -106,16 +106,17 @@ export enum DEFAULT_NEAR_METHODS {
export enum DEFAULT_NEAR_EVENTS {}
/**
* ELROND
* MULTIVERSX
*/
export enum DEFAULT_ELROND_METHODS {
ELROND_SIGN_TRANSACTION = "erd_signTransaction",
ELROND_SIGN_TRANSACTIONS = "erd_signTransactions",
ELROND_SIGN_MESSAGE = "erd_signMessage",
ELROND_SIGN_LOGIN_TOKEN = "erd_signLoginToken",
export enum DEFAULT_MULTIVERSX_METHODS {
MULTIVERSX_SIGN_TRANSACTION = "mvx_signTransaction",
MULTIVERSX_SIGN_TRANSACTIONS = "mvx_signTransactions",
MULTIVERSX_SIGN_MESSAGE = "mvx_signMessage",
MULTIVERSX_SIGN_LOGIN_TOKEN = "mvx_signLoginToken",
MULTIVERSX_SIGN_NATIVE_AUTH_TOKEN = "mvx_signNativeAuthToken",
}
export enum DEFAULT_ELROND_EVENTS {}
export enum DEFAULT_MULTIVERSX_EVENTS {}
/**
* TRON
@@ -7,7 +7,7 @@ import {
} from "react";
import { SolanaChainData } from "../chains/solana";
import { PolkadotChainData } from "../chains/polkadot";
import { ElrondChainData } from "../chains/elrond";
import { MultiversxChainData } from "../chains/multiversx";
import { TronChainData } from "../chains/tron";
import { ChainNamespaces, ChainsMap, getAllChainNamespaces } from "../helpers";
@@ -54,8 +54,8 @@ export function ChainDataContextProvider({
case "near":
chains = NearChainData;
break;
case "elrond":
chains = ElrondChainData;
case "mvx":
chains = MultiversxChainData;
break;
case "tron":
chains = TronChainData;
@@ -35,7 +35,7 @@ import {
DEFAULT_SOLANA_METHODS,
DEFAULT_POLKADOT_METHODS,
DEFAULT_NEAR_METHODS,
DEFAULT_ELROND_METHODS,
DEFAULT_MULTIVERSX_METHODS,
DEFAULT_TRON_METHODS,
DEFAULT_TEZOS_METHODS,
} from "../constants";
@@ -44,16 +44,12 @@ import { rpcProvidersByChainId } from "../../src/helpers/api";
import { signatureVerify, cryptoWaitReady } from "@polkadot/util-crypto";
import {
Transaction as ElrondTransaction,
Transaction as MultiversxTransaction,
TransactionPayload,
Address,
SignableMessage,
ISignature,
} from "@elrondnetwork/erdjs";
import { UserVerifier } from "@elrondnetwork/erdjs-walletcore/out/userVerifier";
import { Signature } from "@elrondnetwork/erdjs-walletcore/out/signature";
import { IVerifiable } from "@elrondnetwork/erdjs-walletcore/out/interface";
} from "@multiversx/sdk-core";
import { UserVerifier } from "@multiversx/sdk-wallet/out/userVerifier";
/**
* Types
@@ -92,7 +88,7 @@ interface IContext {
testSignAndSendTransaction: TRpcRequestCallback;
testSignAndSendTransactions: TRpcRequestCallback;
};
elrondRpc: {
multiversxRpc: {
testSignMessage: TRpcRequestCallback;
testSignTransaction: TRpcRequestCallback;
testSignTransactions: TRpcRequestCallback;
@@ -881,9 +877,9 @@ export function JsonRpcContextProvider({
),
};
// -------- ELROND RPC METHODS --------
// -------- MULTIVERSX RPC METHODS --------
const elrondRpc = {
const multiversxRpc = {
testSignTransaction: _createJsonRpcRequestHandler(
async (
chainId: string,
@@ -895,7 +891,7 @@ export function JsonRpcContextProvider({
const verifier = UserVerifier.fromAddress(userAddress);
const transactionPayload = new TransactionPayload("testdata");
const testTransaction = new ElrondTransaction({
const testTransaction = new MultiversxTransaction({
nonce: 1,
value: "10000000000000000000",
receiver: Address.fromBech32(address),
@@ -912,22 +908,20 @@ export function JsonRpcContextProvider({
chainId,
topic: session!.topic,
request: {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTION,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTION,
params: {
transaction,
},
},
});
testTransaction.applySignature(
new Signature(result.signature),
userAddress
const valid = verifier.verify(
testTransaction.serializeForSigning(Address.fromBech32(address)),
result.signature
);
const valid = verifier.verify(testTransaction as IVerifiable);
return {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTION,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTION,
address,
valid,
result: result.signature.toString(),
@@ -948,7 +942,7 @@ export function JsonRpcContextProvider({
const verifier = UserVerifier.fromAddress(userAddress);
const testTransactionPayload = new TransactionPayload("testdata");
const testTransaction = new ElrondTransaction({
const testTransaction = new MultiversxTransaction({
nonce: 1,
value: "10000000000000000000",
receiver: Address.fromBech32(address),
@@ -960,7 +954,7 @@ export function JsonRpcContextProvider({
});
// no data for this Transaction
const testTransaction2 = new ElrondTransaction({
const testTransaction2 = new MultiversxTransaction({
nonce: 2,
value: "20000000000000000000",
receiver: Address.fromBech32(address),
@@ -971,7 +965,7 @@ export function JsonRpcContextProvider({
});
const testTransaction3Payload = new TransactionPayload("third");
const testTransaction3 = new ElrondTransaction({
const testTransaction3 = new MultiversxTransaction({
nonce: 3,
value: "300000000000000000",
receiver: Address.fromBech32(address),
@@ -995,7 +989,7 @@ export function JsonRpcContextProvider({
chainId,
topic: session!.topic,
request: {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTIONS,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTIONS,
params: {
transactions,
},
@@ -1007,12 +1001,13 @@ export function JsonRpcContextProvider({
testTransaction2,
testTransaction3,
].reduce((acc, current, index) => {
current.applySignature(
new Signature(result.signatures[index].signature),
userAddress
return (
acc &&
verifier.verify(
current.serializeForSigning(Address.fromBech32(address)),
result.signatures[index].signature
)
);
return acc && verifier.verify(current as IVerifiable);
}, true);
const resultSignatures = result.signatures.map(
@@ -1020,7 +1015,7 @@ export function JsonRpcContextProvider({
);
return {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTIONS,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTIONS,
address,
valid,
result: resultSignatures.join(", "),
@@ -1048,7 +1043,7 @@ export function JsonRpcContextProvider({
chainId,
topic: session!.topic,
request: {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_MESSAGE,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_MESSAGE,
params: {
address,
message: testMessage.message.toString(),
@@ -1056,12 +1051,14 @@ export function JsonRpcContextProvider({
},
});
testMessage.applySignature(new Signature(result.signature));
const valid = verifier.verify(testMessage);
const valid = verifier.verify(
testMessage.serializeForSigning(),
result.signature
);
return {
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_MESSAGE,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_MESSAGE,
address,
valid,
result: result.signature.toString(),
@@ -1274,7 +1271,7 @@ export function JsonRpcContextProvider({
solanaRpc,
polkadotRpc,
nearRpc,
elrondRpc,
multiversxRpc,
tronRpc,
tezosRpc,
rpcResult: result,
@@ -10,8 +10,8 @@ import {
DEFAULT_POLKADOT_METHODS,
DEFAULT_NEAR_METHODS,
DEFAULT_NEAR_EVENTS,
DEFAULT_ELROND_EVENTS,
DEFAULT_ELROND_METHODS,
DEFAULT_MULTIVERSX_EVENTS,
DEFAULT_MULTIVERSX_METHODS,
DEFAULT_TRON_METHODS,
DEFAULT_TRON_EVENTS,
DEFAULT_TEZOS_METHODS,
@@ -42,8 +42,8 @@ export const getSupportedMethodsByNamespace = (namespace: string) => {
return Object.values(DEFAULT_POLKADOT_METHODS);
case "near":
return Object.values(DEFAULT_NEAR_METHODS);
case "elrond":
return Object.values(DEFAULT_ELROND_METHODS);
case "mvx":
return Object.values(DEFAULT_MULTIVERSX_METHODS);
case "tron":
return Object.values(DEFAULT_TRON_METHODS);
case "tezos":
@@ -65,8 +65,8 @@ export const getSupportedEventsByNamespace = (namespace: string) => {
return Object.values(DEFAULT_POLKADOT_EVENTS);
case "near":
return Object.values(DEFAULT_NEAR_EVENTS);
case "elrond":
return Object.values(DEFAULT_ELROND_EVENTS);
case "mvx":
return Object.values(DEFAULT_MULTIVERSX_EVENTS);
case "tron":
return Object.values(DEFAULT_TRON_EVENTS);
case "tezos":
+11 -11
View File
@@ -13,7 +13,7 @@ import {
DEFAULT_MAIN_CHAINS,
DEFAULT_SOLANA_METHODS,
DEFAULT_POLKADOT_METHODS,
DEFAULT_ELROND_METHODS,
DEFAULT_MULTIVERSX_METHODS,
DEFAULT_TEST_CHAINS,
DEFAULT_NEAR_METHODS,
DEFAULT_TRON_METHODS,
@@ -74,7 +74,7 @@ const Home: NextPage = () => {
solanaRpc,
polkadotRpc,
nearRpc,
elrondRpc,
multiversxRpc,
tronRpc,
tezosRpc,
isRpcRequestPending,
@@ -258,30 +258,30 @@ const Home: NextPage = () => {
];
};
const getElrondActions = (): AccountAction[] => {
const getMultiversxActions = (): AccountAction[] => {
const onSignTransaction = async (chainId: string, address: string) => {
openRequestModal();
await elrondRpc.testSignTransaction(chainId, address);
await multiversxRpc.testSignTransaction(chainId, address);
};
const onSignTransactions = async (chainId: string, address: string) => {
openRequestModal();
await elrondRpc.testSignTransactions(chainId, address);
await multiversxRpc.testSignTransactions(chainId, address);
};
const onSignMessage = async (chainId: string, address: string) => {
openRequestModal();
await elrondRpc.testSignMessage(chainId, address);
await multiversxRpc.testSignMessage(chainId, address);
};
return [
{
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTION,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTION,
callback: onSignTransaction,
},
{
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_TRANSACTIONS,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_TRANSACTIONS,
callback: onSignTransactions,
},
{
method: DEFAULT_ELROND_METHODS.ELROND_SIGN_MESSAGE,
method: DEFAULT_MULTIVERSX_METHODS.MULTIVERSX_SIGN_MESSAGE,
callback: onSignMessage,
},
];
@@ -350,8 +350,8 @@ const Home: NextPage = () => {
return getPolkadotActions();
case "near":
return getNearActions();
case "elrond":
return getElrondActions();
case "mvx":
return getMultiversxActions();
case "tron":
return getTronActions();
case "tezos":
+1273 -1192
View File
File diff suppressed because it is too large Load Diff