From 9f2ceaafb56be55910688adf7e0158b702dc1a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Diego=20Garc=C3=ADa?= Date: Fri, 30 Apr 2021 18:50:27 -0500 Subject: [PATCH] Refactor bridge-sdk library (#104) * moved bridge interaction to bridge-sdk library * typo --- .../contracts/Address.json | 0 .../contracts/BytesLib.json | 0 .../contracts/Context.json | 0 .../contracts/ERC20.json | 0 .../contracts/IERC20.json | 0 .../contracts/ReentrancyGuard.json | 0 .../contracts/SafeERC20.json | 0 .../contracts/SafeMath.json | 0 .../contracts/WETH.json | 0 .../contracts/Wormhole.json | 0 .../contracts/WrappedAsset.json | 0 packages/bridge-sdk/package.json | 39 +++++++++++++++++-- .../models => bridge-sdk/src}/bridge/claim.ts | 0 .../src}/bridge/config.ts | 6 +-- .../src}/bridge/constants.ts | 0 .../src}/bridge/custody.ts | 0 .../src}/bridge/guardianSet.ts | 0 .../src}/bridge/helpers.ts | 0 .../models => bridge-sdk/src}/bridge/index.ts | 0 .../models => bridge-sdk/src}/bridge/lock.ts | 0 .../models => bridge-sdk/src}/bridge/meta.ts | 0 .../src}/bridge/signatureState.ts | 0 .../src}/bridge/transfer/fromSolana.ts | 4 +- .../src}/bridge/transfer/index.ts | 0 .../src}/bridge/transfer/interface.ts | 2 - .../src}/bridge/transfer/toSolana.ts | 4 +- .../src}/bridge/transferOutProposal.ts | 0 .../src/contracts/ERC20.d.ts | 0 .../src/contracts/ERC20Factory.ts | 0 .../src/contracts/IERC20.d.ts | 0 .../src/contracts/IERC20Factory.ts | 0 .../src/contracts/WETH.d.ts | 0 .../src/contracts/WETHFactory.ts | 0 .../src/contracts/Wormhole.d.ts | 0 .../src/contracts/WormholeFactory.ts | 0 .../src/contracts/WrappedAsset.d.ts | 0 .../src/contracts/WrappedAssetFactory.ts | 0 .../src/contracts/index.d.ts | 0 .../{bridge => bridge-sdk}/src/core/bridge.ts | 2 +- .../{bridge => bridge-sdk}/src/core/index.ts | 0 .../{bridge => bridge-sdk}/src/core/utils.ts | 0 packages/bridge-sdk/src/index.ts | 11 +++++- .../bridge-sdk/src/types/buffer-layout.d.ts | 4 ++ packages/bridge-sdk/tsconfig.json | 25 ++++++------ packages/bridge/package.json | 1 + .../bridge/src/components/Input/input.tsx | 3 +- .../RecentTransactionsTable/index.tsx | 4 +- .../src/components/TokenDisplay/index.tsx | 2 +- .../components/TokenDisplay/tokenChain.tsx | 2 +- .../src/components/TokenSelectModal/index.tsx | 2 +- .../bridge/src/components/Transfer/index.tsx | 2 +- packages/bridge/src/contexts/bridge.tsx | 2 +- packages/bridge/src/contexts/chainPair.tsx | 6 +-- .../bridge/src/hooks/useEthUserAccount.tsx | 30 -------------- .../bridge/src/hooks/useWormholeAccounts.tsx | 2 +- .../src/hooks/useWormholeTransactions.tsx | 7 ++-- packages/bridge/tsconfig.json | 8 ++-- yarn.lock | 7 +++- 58 files changed, 97 insertions(+), 78 deletions(-) rename packages/{bridge => bridge-sdk}/contracts/Address.json (100%) rename packages/{bridge => bridge-sdk}/contracts/BytesLib.json (100%) rename packages/{bridge => bridge-sdk}/contracts/Context.json (100%) rename packages/{bridge => bridge-sdk}/contracts/ERC20.json (100%) rename packages/{bridge => bridge-sdk}/contracts/IERC20.json (100%) rename packages/{bridge => bridge-sdk}/contracts/ReentrancyGuard.json (100%) rename packages/{bridge => bridge-sdk}/contracts/SafeERC20.json (100%) rename packages/{bridge => bridge-sdk}/contracts/SafeMath.json (100%) rename packages/{bridge => bridge-sdk}/contracts/WETH.json (100%) rename packages/{bridge => bridge-sdk}/contracts/Wormhole.json (100%) rename packages/{bridge => bridge-sdk}/contracts/WrappedAsset.json (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/claim.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/config.ts (55%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/constants.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/custody.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/guardianSet.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/helpers.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/index.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/lock.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/meta.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/signatureState.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/transfer/fromSolana.ts (98%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/transfer/index.ts (100%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/transfer/interface.ts (94%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/transfer/toSolana.ts (98%) rename packages/{bridge/src/models => bridge-sdk/src}/bridge/transferOutProposal.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/ERC20.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/ERC20Factory.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/IERC20.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/IERC20Factory.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/WETH.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/WETHFactory.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/Wormhole.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/WormholeFactory.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/WrappedAsset.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/WrappedAssetFactory.ts (100%) rename packages/{bridge => bridge-sdk}/src/contracts/index.d.ts (100%) rename packages/{bridge => bridge-sdk}/src/core/bridge.ts (99%) rename packages/{bridge => bridge-sdk}/src/core/index.ts (100%) rename packages/{bridge => bridge-sdk}/src/core/utils.ts (100%) create mode 100644 packages/bridge-sdk/src/types/buffer-layout.d.ts delete mode 100644 packages/bridge/src/hooks/useEthUserAccount.tsx diff --git a/packages/bridge/contracts/Address.json b/packages/bridge-sdk/contracts/Address.json similarity index 100% rename from packages/bridge/contracts/Address.json rename to packages/bridge-sdk/contracts/Address.json diff --git a/packages/bridge/contracts/BytesLib.json b/packages/bridge-sdk/contracts/BytesLib.json similarity index 100% rename from packages/bridge/contracts/BytesLib.json rename to packages/bridge-sdk/contracts/BytesLib.json diff --git a/packages/bridge/contracts/Context.json b/packages/bridge-sdk/contracts/Context.json similarity index 100% rename from packages/bridge/contracts/Context.json rename to packages/bridge-sdk/contracts/Context.json diff --git a/packages/bridge/contracts/ERC20.json b/packages/bridge-sdk/contracts/ERC20.json similarity index 100% rename from packages/bridge/contracts/ERC20.json rename to packages/bridge-sdk/contracts/ERC20.json diff --git a/packages/bridge/contracts/IERC20.json b/packages/bridge-sdk/contracts/IERC20.json similarity index 100% rename from packages/bridge/contracts/IERC20.json rename to packages/bridge-sdk/contracts/IERC20.json diff --git a/packages/bridge/contracts/ReentrancyGuard.json b/packages/bridge-sdk/contracts/ReentrancyGuard.json similarity index 100% rename from packages/bridge/contracts/ReentrancyGuard.json rename to packages/bridge-sdk/contracts/ReentrancyGuard.json diff --git a/packages/bridge/contracts/SafeERC20.json b/packages/bridge-sdk/contracts/SafeERC20.json similarity index 100% rename from packages/bridge/contracts/SafeERC20.json rename to packages/bridge-sdk/contracts/SafeERC20.json diff --git a/packages/bridge/contracts/SafeMath.json b/packages/bridge-sdk/contracts/SafeMath.json similarity index 100% rename from packages/bridge/contracts/SafeMath.json rename to packages/bridge-sdk/contracts/SafeMath.json diff --git a/packages/bridge/contracts/WETH.json b/packages/bridge-sdk/contracts/WETH.json similarity index 100% rename from packages/bridge/contracts/WETH.json rename to packages/bridge-sdk/contracts/WETH.json diff --git a/packages/bridge/contracts/Wormhole.json b/packages/bridge-sdk/contracts/Wormhole.json similarity index 100% rename from packages/bridge/contracts/Wormhole.json rename to packages/bridge-sdk/contracts/Wormhole.json diff --git a/packages/bridge/contracts/WrappedAsset.json b/packages/bridge-sdk/contracts/WrappedAsset.json similarity index 100% rename from packages/bridge/contracts/WrappedAsset.json rename to packages/bridge-sdk/contracts/WrappedAsset.json diff --git a/packages/bridge-sdk/package.json b/packages/bridge-sdk/package.json index 5e5eb18..64a4427 100644 --- a/packages/bridge-sdk/package.json +++ b/packages/bridge-sdk/package.json @@ -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", diff --git a/packages/bridge/src/models/bridge/claim.ts b/packages/bridge-sdk/src/bridge/claim.ts similarity index 100% rename from packages/bridge/src/models/bridge/claim.ts rename to packages/bridge-sdk/src/bridge/claim.ts diff --git a/packages/bridge/src/models/bridge/config.ts b/packages/bridge-sdk/src/bridge/config.ts similarity index 55% rename from packages/bridge/src/models/bridge/config.ts rename to packages/bridge-sdk/src/bridge/config.ts index b236669..0d79716 100644 --- a/packages/bridge/src/models/bridge/config.ts +++ b/packages/bridge-sdk/src/bridge/config.ts @@ -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'), ]); diff --git a/packages/bridge/src/models/bridge/constants.ts b/packages/bridge-sdk/src/bridge/constants.ts similarity index 100% rename from packages/bridge/src/models/bridge/constants.ts rename to packages/bridge-sdk/src/bridge/constants.ts diff --git a/packages/bridge/src/models/bridge/custody.ts b/packages/bridge-sdk/src/bridge/custody.ts similarity index 100% rename from packages/bridge/src/models/bridge/custody.ts rename to packages/bridge-sdk/src/bridge/custody.ts diff --git a/packages/bridge/src/models/bridge/guardianSet.ts b/packages/bridge-sdk/src/bridge/guardianSet.ts similarity index 100% rename from packages/bridge/src/models/bridge/guardianSet.ts rename to packages/bridge-sdk/src/bridge/guardianSet.ts diff --git a/packages/bridge/src/models/bridge/helpers.ts b/packages/bridge-sdk/src/bridge/helpers.ts similarity index 100% rename from packages/bridge/src/models/bridge/helpers.ts rename to packages/bridge-sdk/src/bridge/helpers.ts diff --git a/packages/bridge/src/models/bridge/index.ts b/packages/bridge-sdk/src/bridge/index.ts similarity index 100% rename from packages/bridge/src/models/bridge/index.ts rename to packages/bridge-sdk/src/bridge/index.ts diff --git a/packages/bridge/src/models/bridge/lock.ts b/packages/bridge-sdk/src/bridge/lock.ts similarity index 100% rename from packages/bridge/src/models/bridge/lock.ts rename to packages/bridge-sdk/src/bridge/lock.ts diff --git a/packages/bridge/src/models/bridge/meta.ts b/packages/bridge-sdk/src/bridge/meta.ts similarity index 100% rename from packages/bridge/src/models/bridge/meta.ts rename to packages/bridge-sdk/src/bridge/meta.ts diff --git a/packages/bridge/src/models/bridge/signatureState.ts b/packages/bridge-sdk/src/bridge/signatureState.ts similarity index 100% rename from packages/bridge/src/models/bridge/signatureState.ts rename to packages/bridge-sdk/src/bridge/signatureState.ts diff --git a/packages/bridge/src/models/bridge/transfer/fromSolana.ts b/packages/bridge-sdk/src/bridge/transfer/fromSolana.ts similarity index 98% rename from packages/bridge/src/models/bridge/transfer/fromSolana.ts rename to packages/bridge-sdk/src/bridge/transfer/fromSolana.ts index 13acaf6..d9efd72 100644 --- a/packages/bridge/src/models/bridge/transfer/fromSolana.ts +++ b/packages/bridge-sdk/src/bridge/transfer/fromSolana.ts @@ -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, diff --git a/packages/bridge/src/models/bridge/transfer/index.ts b/packages/bridge-sdk/src/bridge/transfer/index.ts similarity index 100% rename from packages/bridge/src/models/bridge/transfer/index.ts rename to packages/bridge-sdk/src/bridge/transfer/index.ts diff --git a/packages/bridge/src/models/bridge/transfer/interface.ts b/packages/bridge-sdk/src/bridge/transfer/interface.ts similarity index 94% rename from packages/bridge/src/models/bridge/transfer/interface.ts rename to packages/bridge-sdk/src/bridge/transfer/interface.ts index d396b44..04c3b83 100644 --- a/packages/bridge/src/models/bridge/transfer/interface.ts +++ b/packages/bridge-sdk/src/bridge/transfer/interface.ts @@ -1,5 +1,3 @@ -import BN from 'bn.js'; -import { ethers } from 'ethers'; import { BigNumber } from 'ethers/utils'; import { ASSET_CHAIN } from '../constants'; diff --git a/packages/bridge/src/models/bridge/transfer/toSolana.ts b/packages/bridge-sdk/src/bridge/transfer/toSolana.ts similarity index 98% rename from packages/bridge/src/models/bridge/transfer/toSolana.ts rename to packages/bridge-sdk/src/bridge/transfer/toSolana.ts index d7557a2..c8936a0 100644 --- a/packages/bridge/src/models/bridge/transfer/toSolana.ts +++ b/packages/bridge-sdk/src/bridge/transfer/toSolana.ts @@ -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 { diff --git a/packages/bridge/src/models/bridge/transferOutProposal.ts b/packages/bridge-sdk/src/bridge/transferOutProposal.ts similarity index 100% rename from packages/bridge/src/models/bridge/transferOutProposal.ts rename to packages/bridge-sdk/src/bridge/transferOutProposal.ts diff --git a/packages/bridge/src/contracts/ERC20.d.ts b/packages/bridge-sdk/src/contracts/ERC20.d.ts similarity index 100% rename from packages/bridge/src/contracts/ERC20.d.ts rename to packages/bridge-sdk/src/contracts/ERC20.d.ts diff --git a/packages/bridge/src/contracts/ERC20Factory.ts b/packages/bridge-sdk/src/contracts/ERC20Factory.ts similarity index 100% rename from packages/bridge/src/contracts/ERC20Factory.ts rename to packages/bridge-sdk/src/contracts/ERC20Factory.ts diff --git a/packages/bridge/src/contracts/IERC20.d.ts b/packages/bridge-sdk/src/contracts/IERC20.d.ts similarity index 100% rename from packages/bridge/src/contracts/IERC20.d.ts rename to packages/bridge-sdk/src/contracts/IERC20.d.ts diff --git a/packages/bridge/src/contracts/IERC20Factory.ts b/packages/bridge-sdk/src/contracts/IERC20Factory.ts similarity index 100% rename from packages/bridge/src/contracts/IERC20Factory.ts rename to packages/bridge-sdk/src/contracts/IERC20Factory.ts diff --git a/packages/bridge/src/contracts/WETH.d.ts b/packages/bridge-sdk/src/contracts/WETH.d.ts similarity index 100% rename from packages/bridge/src/contracts/WETH.d.ts rename to packages/bridge-sdk/src/contracts/WETH.d.ts diff --git a/packages/bridge/src/contracts/WETHFactory.ts b/packages/bridge-sdk/src/contracts/WETHFactory.ts similarity index 100% rename from packages/bridge/src/contracts/WETHFactory.ts rename to packages/bridge-sdk/src/contracts/WETHFactory.ts diff --git a/packages/bridge/src/contracts/Wormhole.d.ts b/packages/bridge-sdk/src/contracts/Wormhole.d.ts similarity index 100% rename from packages/bridge/src/contracts/Wormhole.d.ts rename to packages/bridge-sdk/src/contracts/Wormhole.d.ts diff --git a/packages/bridge/src/contracts/WormholeFactory.ts b/packages/bridge-sdk/src/contracts/WormholeFactory.ts similarity index 100% rename from packages/bridge/src/contracts/WormholeFactory.ts rename to packages/bridge-sdk/src/contracts/WormholeFactory.ts diff --git a/packages/bridge/src/contracts/WrappedAsset.d.ts b/packages/bridge-sdk/src/contracts/WrappedAsset.d.ts similarity index 100% rename from packages/bridge/src/contracts/WrappedAsset.d.ts rename to packages/bridge-sdk/src/contracts/WrappedAsset.d.ts diff --git a/packages/bridge/src/contracts/WrappedAssetFactory.ts b/packages/bridge-sdk/src/contracts/WrappedAssetFactory.ts similarity index 100% rename from packages/bridge/src/contracts/WrappedAssetFactory.ts rename to packages/bridge-sdk/src/contracts/WrappedAssetFactory.ts diff --git a/packages/bridge/src/contracts/index.d.ts b/packages/bridge-sdk/src/contracts/index.d.ts similarity index 100% rename from packages/bridge/src/contracts/index.d.ts rename to packages/bridge-sdk/src/contracts/index.d.ts diff --git a/packages/bridge/src/core/bridge.ts b/packages/bridge-sdk/src/core/bridge.ts similarity index 99% rename from packages/bridge/src/core/bridge.ts rename to packages/bridge-sdk/src/core/bridge.ts index 4654a5b..cfd6fc9 100644 --- a/packages/bridge/src/core/bridge.ts +++ b/packages/bridge-sdk/src/core/bridge.ts @@ -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; diff --git a/packages/bridge/src/core/index.ts b/packages/bridge-sdk/src/core/index.ts similarity index 100% rename from packages/bridge/src/core/index.ts rename to packages/bridge-sdk/src/core/index.ts diff --git a/packages/bridge/src/core/utils.ts b/packages/bridge-sdk/src/core/utils.ts similarity index 100% rename from packages/bridge/src/core/utils.ts rename to packages/bridge-sdk/src/core/utils.ts diff --git a/packages/bridge-sdk/src/index.ts b/packages/bridge-sdk/src/index.ts index 4dfd2bb..ea94e5d 100644 --- a/packages/bridge-sdk/src/index.ts +++ b/packages/bridge-sdk/src/index.ts @@ -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'; diff --git a/packages/bridge-sdk/src/types/buffer-layout.d.ts b/packages/bridge-sdk/src/types/buffer-layout.d.ts new file mode 100644 index 0000000..e75a7e2 --- /dev/null +++ b/packages/bridge-sdk/src/types/buffer-layout.d.ts @@ -0,0 +1,4 @@ +declare module 'buffer-layout' { + const bl: any; + export = bl; +} diff --git a/packages/bridge-sdk/tsconfig.json b/packages/bridge-sdk/tsconfig.json index 7420e1f..da087cf 100644 --- a/packages/bridge-sdk/tsconfig.json +++ b/packages/bridge-sdk/tsconfig.json @@ -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/**/*"] } diff --git a/packages/bridge/package.json b/packages/bridge/package.json index cd6444f..08c7bbc 100644 --- a/packages/bridge/package.json +++ b/packages/bridge/package.json @@ -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", diff --git a/packages/bridge/src/components/Input/input.tsx b/packages/bridge/src/components/Input/input.tsx index 29fbd65..06386d1 100644 --- a/packages/bridge/src/components/Input/input.tsx +++ b/packages/bridge/src/components/Input/input.tsx @@ -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'; diff --git a/packages/bridge/src/components/RecentTransactionsTable/index.tsx b/packages/bridge/src/components/RecentTransactionsTable/index.tsx index 8000ab7..8d3bb30 100644 --- a/packages/bridge/src/components/RecentTransactionsTable/index.tsx +++ b/packages/bridge/src/components/RecentTransactionsTable/index.tsx @@ -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'; diff --git a/packages/bridge/src/components/TokenDisplay/index.tsx b/packages/bridge/src/components/TokenDisplay/index.tsx index dff41f5..04dbcdd 100644 --- a/packages/bridge/src/components/TokenDisplay/index.tsx +++ b/packages/bridge/src/components/TokenDisplay/index.tsx @@ -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'; diff --git a/packages/bridge/src/components/TokenDisplay/tokenChain.tsx b/packages/bridge/src/components/TokenDisplay/tokenChain.tsx index f8cece1..c98617b 100644 --- a/packages/bridge/src/components/TokenDisplay/tokenChain.tsx +++ b/packages/bridge/src/components/TokenDisplay/tokenChain.tsx @@ -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; diff --git a/packages/bridge/src/components/TokenSelectModal/index.tsx b/packages/bridge/src/components/TokenSelectModal/index.tsx index a73084b..f31d86c 100644 --- a/packages/bridge/src/components/TokenSelectModal/index.tsx +++ b/packages/bridge/src/components/TokenSelectModal/index.tsx @@ -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'; diff --git a/packages/bridge/src/components/Transfer/index.tsx b/packages/bridge/src/components/Transfer/index.tsx index 69d1bc8..c56e629 100644 --- a/packages/bridge/src/components/Transfer/index.tsx +++ b/packages/bridge/src/components/Transfer/index.tsx @@ -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'; diff --git a/packages/bridge/src/contexts/bridge.tsx b/packages/bridge/src/contexts/bridge.tsx index 233d38d..1d778c0 100644 --- a/packages/bridge/src/contexts/bridge.tsx +++ b/packages/bridge/src/contexts/bridge.tsx @@ -1,5 +1,5 @@ import React, { createContext, FunctionComponent, useContext } from 'react'; -import { SolanaBridge } from '../core'; +import { SolanaBridge } from '@solana/bridge-sdk'; import { useConnection, useConnectionConfig, diff --git a/packages/bridge/src/contexts/chainPair.tsx b/packages/bridge/src/contexts/chainPair.tsx index b863bdb..b1920d8 100644 --- a/packages/bridge/src/contexts/chainPair.tsx +++ b/packages/bridge/src/contexts/chainPair.tsx @@ -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'; diff --git a/packages/bridge/src/hooks/useEthUserAccount.tsx b/packages/bridge/src/hooks/useEthUserAccount.tsx deleted file mode 100644 index 7b2ecec..0000000 --- a/packages/bridge/src/hooks/useEthUserAccount.tsx +++ /dev/null @@ -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; -}; diff --git a/packages/bridge/src/hooks/useWormholeAccounts.tsx b/packages/bridge/src/hooks/useWormholeAccounts.tsx index 83e5eb6..f192eb0 100644 --- a/packages/bridge/src/hooks/useWormholeAccounts.tsx +++ b/packages/bridge/src/hooks/useWormholeAccounts.tsx @@ -20,7 +20,7 @@ import { bridgeAuthorityKey, wrappedAssetMintKey, WrappedMetaLayout, -} from './../models/bridge'; +} from '@solana/bridge-sdk'; import bs58 from 'bs58'; import { diff --git a/packages/bridge/src/hooks/useWormholeTransactions.tsx b/packages/bridge/src/hooks/useWormholeTransactions.tsx index dbfc344..9b57577 100644 --- a/packages/bridge/src/hooks/useWormholeTransactions.tsx +++ b/packages/bridge/src/hooks/useWormholeTransactions.tsx @@ -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; diff --git a/packages/bridge/tsconfig.json b/packages/bridge/tsconfig.json index 7420e1f..8ae8d0b 100644 --- a/packages/bridge/tsconfig.json +++ b/packages/bridge/tsconfig.json @@ -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"] } diff --git a/yarn.lock b/yarn.lock index 0eb4f81..826a46d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"