mirror of https://github.com/certusone/oyster.git
Refactor bridge-sdk library (#104)
* moved bridge interaction to bridge-sdk library * typo
This commit is contained in:
parent
39b1fa63ef
commit
9f2ceaafb5
|
@ -1,16 +1,30 @@
|
|||
{
|
||||
"name": "@solana/bridge-sdk",
|
||||
"version": "0.0.1",
|
||||
"description": "Bridge common sdk utilities",
|
||||
"main": "dist/lib/index.js",
|
||||
"types": "dist/lib/index.d.ts",
|
||||
"exports": {
|
||||
".": "./dist/lib/"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@solana/wallet-base": "0.0.1",
|
||||
"@solana/wallet-ledger": "0.0.1",
|
||||
"@babel/preset-typescript": "^7.13.0",
|
||||
"@oyster/common": "0.0.1",
|
||||
"@solana/spl-token": "0.0.13",
|
||||
"@solana/spl-token-swap": "0.1.0",
|
||||
"@solana/wallet-base": "0.0.1",
|
||||
"@solana/wallet-ledger": "0.0.1",
|
||||
"@solana/web3.js": "^1.5.0",
|
||||
"bn.js": "^5.1.3",
|
||||
"bs58": "^4.0.1",
|
||||
"buffer-layout": "^1.2.0",
|
||||
"buffer-layout": "^1.2.1",
|
||||
"ethers": "^4.0.48",
|
||||
"eventemitter3": "^4.0.7",
|
||||
"lodash": "^4.17.20",
|
||||
|
@ -18,9 +32,20 @@
|
|||
"web3": "^1.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"start": "npm-run-all --parallel watch watch-css watch-css-src",
|
||||
"watch-css": "less-watch-compiler src/ dist/lib/",
|
||||
"watch-css-src": "less-watch-compiler src/ src/",
|
||||
"watch": "tsc --watch",
|
||||
"test": "jest test",
|
||||
"clean": "rm -rf dist",
|
||||
"prepare": "run-s clean build",
|
||||
"format:fix": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css|md)\"",
|
||||
"ethers": "typechain --target ethers-v4 --outDir src/contracts 'contracts/*.json'"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
|
@ -37,6 +62,14 @@
|
|||
"type": "git",
|
||||
"url": "https://github.com/solana-labs/oyster"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-dom": "*"
|
||||
},
|
||||
"resolutions": {
|
||||
"react": "16.13.1",
|
||||
"react-dom": "16.13.1"
|
||||
},
|
||||
"homepage": ".",
|
||||
"devDependencies": {
|
||||
"@typechain/ethers-v4": "^1.0.0",
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// 44 - bridge config
|
||||
import { Layout } from '@oyster/common';
|
||||
import { publicKey } from '@oyster/common/dist/lib/utils/layout';
|
||||
import * as BufferLayout from 'buffer-layout';
|
||||
|
||||
export const BridgeLayout: typeof BufferLayout.Structure = BufferLayout.struct([
|
||||
export const BridgeLayout = BufferLayout.struct([
|
||||
BufferLayout.u32('guardianSetIndex'),
|
||||
BufferLayout.u8('guardianSetExpirationTime'),
|
||||
Layout.publicKey('tokenProgram'),
|
||||
publicKey('tokenProgram'),
|
||||
BufferLayout.u8('isInitialized'),
|
||||
]);
|
|
@ -1,7 +1,7 @@
|
|||
import { programIds, sendTransactionWithRetry } from '@oyster/common';
|
||||
import { WalletAdapter } from '@solana/wallet-base';
|
||||
import { ethers } from 'ethers';
|
||||
import { WormholeFactory } from '../../../contracts/WormholeFactory';
|
||||
import { WormholeFactory } from '../../contracts/WormholeFactory';
|
||||
import { bridgeAuthorityKey } from './../helpers';
|
||||
import { Connection, PublicKey, SystemProgram } from '@solana/web3.js';
|
||||
import { Token } from '@solana/spl-token';
|
||||
|
@ -9,7 +9,7 @@ import { ProgressUpdate, TransferRequest } from './interface';
|
|||
import BN from 'bn.js';
|
||||
import { createLockAssetInstruction } from '../lock';
|
||||
import { TransferOutProposalLayout } from '../transferOutProposal';
|
||||
import { SolanaBridge } from '../../../core';
|
||||
import { SolanaBridge } from '../../core';
|
||||
|
||||
export const fromSolana = async (
|
||||
connection: Connection,
|
|
@ -1,5 +1,3 @@
|
|||
import BN from 'bn.js';
|
||||
import { ethers } from 'ethers';
|
||||
import { BigNumber } from 'ethers/utils';
|
||||
import { ASSET_CHAIN } from '../constants';
|
||||
|
|
@ -8,8 +8,8 @@ import {
|
|||
createAssociatedTokenAccountInstruction,
|
||||
} from '@oyster/common';
|
||||
import { ethers } from 'ethers';
|
||||
import { ERC20Factory } from '../../../contracts/ERC20Factory';
|
||||
import { WormholeFactory } from '../../../contracts/WormholeFactory';
|
||||
import { ERC20Factory } from '../../contracts/ERC20Factory';
|
||||
import { WormholeFactory } from '../../contracts/WormholeFactory';
|
||||
import { AssetMeta, createWrappedAssetInstruction } from './../meta';
|
||||
import { bridgeAuthorityKey, wrappedAssetMintKey } from './../helpers';
|
||||
import {
|
|
@ -5,7 +5,7 @@ import assert from 'assert';
|
|||
// @ts-ignore
|
||||
import * as BufferLayout from 'buffer-layout';
|
||||
import * as bs58 from 'bs58';
|
||||
import { AssetMeta } from '../models/bridge';
|
||||
import { AssetMeta } from '../bridge';
|
||||
|
||||
export interface Lockup {
|
||||
lockupAddress: PublicKey;
|
|
@ -1 +1,10 @@
|
|||
// TODO: move bridge interaction code to this library
|
||||
export * as bridge from './bridge';
|
||||
export * from './bridge';
|
||||
export * as core from './core';
|
||||
export * from './core';
|
||||
|
||||
export * from './contracts/ERC20Factory';
|
||||
export * from './contracts/IERC20Factory';
|
||||
export * from './contracts/WETHFactory';
|
||||
export * from './contracts/WormholeFactory';
|
||||
export * from './contracts/WrappedAssetFactory';
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
declare module 'buffer-layout' {
|
||||
const bl: any;
|
||||
export = bl;
|
||||
}
|
|
@ -1,22 +1,23 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"module": "commonjs",
|
||||
"target": "es2019",
|
||||
"moduleResolution": "node",
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"allowJs": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"downlevelIteration": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react",
|
||||
"typeRoots": ["types", "../../types", "../../node_modules/@types"]
|
||||
"typeRoots": ["types", "../../types", "../../node_modules/@types"],
|
||||
"outDir": "./dist/lib",
|
||||
"rootDir": "./src",
|
||||
"composite": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"sourceMap": true
|
||||
},
|
||||
"include": ["src"]
|
||||
"include": ["src/**/*"]
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
"@solana/spl-token-swap": "0.1.0",
|
||||
"@solana/wallet-base": "0.0.1",
|
||||
"@solana/wallet-ledger": "0.0.1",
|
||||
"@solana/bridge-sdk": "0.0.1",
|
||||
"@solana/web3.js": "^1.5.0",
|
||||
"@testing-library/jest-dom": "^4.2.4",
|
||||
"@testing-library/react": "^9.5.0",
|
||||
|
|
|
@ -8,9 +8,8 @@ import {
|
|||
useWallet,
|
||||
} from '@oyster/common';
|
||||
import './style.less';
|
||||
import { ASSET_CHAIN } from '../../models/bridge/constants';
|
||||
import { TokenSelectModal } from '../TokenSelectModal';
|
||||
import { chainToName } from '../../utils/assets';
|
||||
import { ASSET_CHAIN, chainToName } from '../../utils/assets';
|
||||
import { TokenChain } from '../TokenDisplay/tokenChain';
|
||||
import { EthereumConnect } from '../EthereumConnect';
|
||||
import { CurrentUserWalletBadge } from '../CurrentUserWalletBadge';
|
||||
|
|
|
@ -21,8 +21,8 @@ import { TokenChain } from '../TokenDisplay/tokenChain';
|
|||
import bs58 from 'bs58';
|
||||
import { SyncOutlined } from '@ant-design/icons';
|
||||
import { typeToIcon } from '../Transfer';
|
||||
import { ProgressUpdate } from '../../models/bridge';
|
||||
import { WormholeFactory } from '../../contracts/WormholeFactory';
|
||||
import { ProgressUpdate } from '@solana/bridge-sdk';
|
||||
import { WormholeFactory } from '@solana/bridge-sdk';
|
||||
import { useEthereum } from '../../contexts';
|
||||
import { useBridge } from '../../contexts/bridge';
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import { TokenInfo } from '@solana/spl-token-registry';
|
|||
import { debug } from 'console';
|
||||
import React from 'react';
|
||||
import { useEthereum } from '../../contexts';
|
||||
import { ASSET_CHAIN } from '../../models/bridge/constants';
|
||||
import { ASSET_CHAIN } from '../../utils/assets';
|
||||
import './style.less';
|
||||
import { TokenChain } from './tokenChain';
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React from 'react';
|
||||
import { ASSET_CHAIN } from '../../models/bridge/constants';
|
||||
import { ASSET_CHAIN } from '../../utils/assets';
|
||||
|
||||
export const TokenChain = (props: {
|
||||
chain?: ASSET_CHAIN;
|
||||
|
|
|
@ -6,7 +6,7 @@ import './style.less';
|
|||
import { Input, Modal } from 'antd';
|
||||
import { useEthereum } from '../../contexts';
|
||||
import { TokenDisplay } from '../TokenDisplay';
|
||||
import { ASSET_CHAIN } from '../../models/bridge/constants';
|
||||
import { ASSET_CHAIN } from '../../utils/assets';
|
||||
import { useConnectionConfig } from '@oyster/common';
|
||||
import { filterModalEthTokens, filterModalSolTokens } from '../../utils/assets';
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import {
|
|||
ProgressUpdate,
|
||||
toSolana,
|
||||
TransferRequest,
|
||||
} from '../../models/bridge';
|
||||
} from '@solana/bridge-sdk';
|
||||
import { useEthereum } from '../../contexts';
|
||||
import { TokenDisplay } from '../TokenDisplay';
|
||||
import { useTokenChainPairState } from '../../contexts/chainPair';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React, { createContext, FunctionComponent, useContext } from 'react';
|
||||
import { SolanaBridge } from '../core';
|
||||
import { SolanaBridge } from '@solana/bridge-sdk';
|
||||
import {
|
||||
useConnection,
|
||||
useConnectionConfig,
|
||||
|
|
|
@ -21,13 +21,13 @@ import {
|
|||
} from '../utils/assets';
|
||||
import { useEthereum } from './ethereum';
|
||||
import { BigNumber } from 'ethers/utils';
|
||||
import { WrappedAssetFactory } from '../contracts/WrappedAssetFactory';
|
||||
import { WormholeFactory } from '../contracts/WormholeFactory';
|
||||
import { WrappedAssetFactory } from '@solana/bridge-sdk';
|
||||
import { WormholeFactory } from '@solana/bridge-sdk';
|
||||
import {
|
||||
bridgeAuthorityKey,
|
||||
TransferRequestInfo,
|
||||
wrappedAssetMintKey,
|
||||
} from '../models/bridge';
|
||||
} from '@solana/bridge-sdk';
|
||||
import { useBridge } from './bridge';
|
||||
import { PublicKey } from '@solana/web3.js';
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
useConnection,
|
||||
useConnectionConfig,
|
||||
MintParser,
|
||||
cache,
|
||||
getMultipleAccounts,
|
||||
ParsedAccount,
|
||||
TokenAccountParser,
|
||||
} from '@oyster/common';
|
||||
import { WORMHOLE_PROGRAM_ID } from '../utils/ids';
|
||||
import { ASSET_CHAIN } from '../utils/assets';
|
||||
import { useEthereum } from '../contexts';
|
||||
import { Connection, PublicKey } from '@solana/web3.js';
|
||||
import { models } from '@oyster/common';
|
||||
import { AccountInfo, MintInfo, TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
||||
import { WrappedMetaLayout } from './../models/bridge';
|
||||
import bs58 from 'bs58';
|
||||
import {
|
||||
COINGECKO_COIN_PRICE_API,
|
||||
COINGECKO_POOL_INTERVAL,
|
||||
useCoingecko,
|
||||
} from '../contexts/coingecko';
|
||||
|
||||
export const useEthUserAccount = () => {
|
||||
const [address, setAddress] = useState('');
|
||||
// const { web3 } = useEthereum();
|
||||
|
||||
return address;
|
||||
};
|
|
@ -20,7 +20,7 @@ import {
|
|||
bridgeAuthorityKey,
|
||||
wrappedAssetMintKey,
|
||||
WrappedMetaLayout,
|
||||
} from './../models/bridge';
|
||||
} from '@solana/bridge-sdk';
|
||||
|
||||
import bs58 from 'bs58';
|
||||
import {
|
||||
|
|
|
@ -21,7 +21,7 @@ import {
|
|||
import {
|
||||
bridgeAuthorityKey,
|
||||
TransferOutProposalLayout,
|
||||
} from './../models/bridge';
|
||||
} from '@solana/bridge-sdk';
|
||||
|
||||
import bs58 from 'bs58';
|
||||
import {
|
||||
|
@ -30,17 +30,16 @@ import {
|
|||
useCoingecko,
|
||||
} from '../contexts/coingecko';
|
||||
import { BN } from 'bn.js';
|
||||
import { WormholeFactory } from '../contracts/WormholeFactory';
|
||||
import { WormholeFactory } from '@solana/bridge-sdk';
|
||||
import { ethers } from 'ethers';
|
||||
import { useBridge } from '../contexts/bridge';
|
||||
import { SolanaBridge } from '../core';
|
||||
import { SolanaBridge } from '@solana/bridge-sdk';
|
||||
|
||||
type WrappedTransferMeta = {
|
||||
chain: number;
|
||||
decimals: number;
|
||||
address: string;
|
||||
publicKey: PublicKey;
|
||||
|
||||
coinId?: string;
|
||||
price?: number;
|
||||
explorer?: any;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"module": "esnext",
|
||||
"target": "es2019",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
|
@ -9,14 +10,13 @@
|
|||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"downlevelIteration": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react",
|
||||
"typeRoots": ["types", "../../types", "../../node_modules/@types"]
|
||||
"typeRoots": ["types", "../../types", "../../node_modules/@types"],
|
||||
"moduleResolution": "node"
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
||||
|
|
|
@ -1185,7 +1185,7 @@
|
|||
"@babel/helper-plugin-utils" "^7.8.3"
|
||||
"@babel/plugin-transform-typescript" "^7.9.0"
|
||||
|
||||
"@babel/preset-typescript@^7.12.13":
|
||||
"@babel/preset-typescript@^7.12.13", "@babel/preset-typescript@^7.13.0":
|
||||
version "7.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a"
|
||||
integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==
|
||||
|
@ -6417,6 +6417,11 @@ buffer-layout@^1.2.0:
|
|||
resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.0.tgz#ee1f5ef05a8afd5db6b3a8fe2056c111bc69c737"
|
||||
integrity sha512-iiyRoho/ERzBUv6kFvfsrLNgTlVwOkqQcSQN7WrO3Y+c5SeuEhCn6+y1KwhM0V3ndptF5mI/RI44zkw0qcR5Jg==
|
||||
|
||||
buffer-layout@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.1.tgz#17b6db7abea303cab35eebd77919b89de026297d"
|
||||
integrity sha512-RUTGEYG1vX0Zp1dStQFl8yeU/LEBPXVtHwzzDbPWkE5zq+Prt9fkFLKNiwmaeHg6BBiRMcQAgj4cynazO6eekw==
|
||||
|
||||
buffer-to-arraybuffer@^0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a"
|
||||
|
|
Loading…
Reference in New Issue