@learncard/ethereum-plugin 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
1
+ export declare const hardcodedTokens: {
2
+ name: string;
3
+ address: string;
4
+ symbol: string;
5
+ decimals: number;
6
+ chainId: number;
7
+ logoURI: string;
8
+ extensions: {
9
+ bridgeInfo: {
10
+ '10': {
11
+ tokenAddress: string;
12
+ };
13
+ '137': {
14
+ tokenAddress: string;
15
+ };
16
+ '42161': {
17
+ tokenAddress: string;
18
+ };
19
+ };
20
+ };
21
+ }[];
22
+ export default hardcodedTokens;
@@ -0,0 +1,7 @@
1
+ import { ethers } from 'ethers';
2
+ import { Token, TokenList } from './types';
3
+ export declare const isAddress: (maybeAddress: string) => boolean;
4
+ export declare const formatUnits: (units: ethers.BigNumberish, symbolOrAddress: string, tokenList: TokenList, chainId: number) => Promise<string>;
5
+ export declare const parseUnits: (units: string, symbolOrAddress: string, tokenList: TokenList, chainId: number) => Promise<ethers.BigNumber>;
6
+ export declare const getTokenFromSymbolOrAddress: (symbolOrAddress: string, tokenList: TokenList, chainId: number) => Promise<Token | undefined>;
7
+ export declare const getChainIdFromProvider: (provider: ethers.providers.Provider) => Promise<number>;
@@ -0,0 +1,7 @@
1
+ import { LearnCard } from '@learncard/core';
2
+ import { EthereumConfig, EthereumPlugin } from './types';
3
+ export * from './types';
4
+ /**
5
+ * @group Plugins
6
+ */
7
+ export declare const getEthereumPlugin: (initLearnCard: LearnCard<any, 'id'>, config: EthereumConfig) => EthereumPlugin;
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./ethereum-plugin.cjs.production.min.js');
5
+ } else {
6
+ module.exports = require('./ethereum-plugin.cjs.development.js');
7
+ }
@@ -0,0 +1,32 @@
1
+ import { providers } from 'ethers';
2
+ import { Plugin } from '@learncard/core';
3
+ /** @group Ethereum Plugin */
4
+ export type EthereumPluginMethods = {
5
+ getEthereumAddress: () => string;
6
+ getBalance: (symbolOrAddress?: string) => Promise<string>;
7
+ getBalanceForAddress: (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
8
+ transferTokens: (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
9
+ getGasPrice: () => Promise<string>;
10
+ getCurrentNetwork: () => providers.Networkish;
11
+ changeNetwork: (network: providers.Networkish) => void;
12
+ addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
13
+ };
14
+ /** @group Ethereum Plugin */
15
+ export type EthereumConfig = {
16
+ infuraProjectId?: string;
17
+ network?: providers.Networkish;
18
+ };
19
+ /** @group Ethereum Plugin */
20
+ export type Token = {
21
+ chainId: number;
22
+ address: string;
23
+ name: string;
24
+ symbol: string;
25
+ decimals: number;
26
+ logoURI: string;
27
+ extensions: any;
28
+ };
29
+ /** @group Ethereum Plugin */
30
+ export type TokenList = Token[];
31
+ /** @group Ethereum Plugin */
32
+ export type EthereumPlugin = Plugin<'Ethereum', any, EthereumPluginMethods, 'id'>;
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@learncard/ethereum-plugin",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/ethereum-plugin.esm.js",
7
+ "private": false,
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "author": "Learning Economy Foundation (www.learningeconomy.io)",
12
+ "license": "MIT",
13
+ "homepage": "https://github.com/WeLibraryOS/LearnCard#readme",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/WeLibraryOS/LearnCard.git"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/WeLibraryOS/LearnCard/issues"
20
+ },
21
+ "devDependencies": {
22
+ "@types/jest": "^29.2.2",
23
+ "@types/node": "^17.0.31",
24
+ "aqu": "0.4.3",
25
+ "esbuild": "^0.14.38",
26
+ "esbuild-jest": "^0.5.0",
27
+ "esbuild-plugin-copy": "^1.3.0",
28
+ "jest": "^29.3.0",
29
+ "shx": "^0.3.4",
30
+ "ts-jest": "^29.0.3"
31
+ },
32
+ "types": "./dist/index.d.ts",
33
+ "dependencies": {
34
+ "@uniswap/default-token-list": "^4.1.0",
35
+ "ethers": "^5.6.9",
36
+ "@learncard/core": "9.0.0"
37
+ },
38
+ "scripts": {
39
+ "build": "node ./scripts/build.mjs && shx cp ./scripts/mixedEntypoint.js ./dist/index.js && tsc --p tsconfig.json",
40
+ "test": "jest --passWithNoTests",
41
+ "test:watch": "jest --watch",
42
+ "test:coverage": "jest --silent --ci --coverage --coverageReporters=\"text\" --coverageReporters=\"text-summary\""
43
+ }
44
+ }