Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
f97a855
Added promise types for assets
0xBeycan Mar 18, 2024
dfaa4c3
version upgrade
0xBeycan Mar 18, 2024
2b19287
Coin asset is completed
0xBeycan Mar 18, 2024
6fb0c2a
updated
0xBeycan Mar 24, 2024
d9da4cc
updated
0xBeycan Mar 24, 2024
c5412df
updated
0xBeycan Mar 24, 2024
ae003f1
updated
0xBeycan Mar 24, 2024
a0ceaba
contract is completed
0xBeycan Mar 24, 2024
7009972
token is developing - need fix error: replacement transaction underpr…
0xBeycan Mar 24, 2024
6e934f3
methods are created but need fix this error ' const gas = ; //…
0xBeycan Mar 24, 2024
8d8dfc6
added wait method for transaction
0xBeycan Mar 25, 2024
e20c320
updated
0xBeycan Mar 25, 2024
a2063ab
added TODO note
0xBeycan Mar 25, 2024
a3a432e
added string definations for enums
0xBeycan Mar 25, 2024
5e27c3a
completed wait method for transaction model
0xBeycan Mar 25, 2024
b5ce0a3
added new methods
0xBeycan Mar 25, 2024
ce4a013
ready for tests
0xBeycan Mar 25, 2024
f50e638
updated
0xBeycan Mar 25, 2024
33da9a7
added error types
0xBeycan Mar 26, 2024
f518e0e
added new method
0xBeycan Mar 26, 2024
f83b7a7
completed token asset
0xBeycan Mar 26, 2024
b9639f2
updated
0xBeycan Mar 26, 2024
b9ad78b
added new method types for token and nft
0xBeycan Mar 26, 2024
349fd91
updated
0xBeycan Mar 26, 2024
87ca8e8
updated transferFrom types
0xBeycan Mar 26, 2024
5fc88aa
updated
0xBeycan Mar 26, 2024
37bbbb4
updated getStatus method
0xBeycan Mar 26, 2024
8444f73
transaction signer types + NFT asset
oynozan Mar 27, 2024
4a148ff
Revert "transaction signer types + NFT asset"
0xBeycan Mar 27, 2024
01687e0
transaction signer types + NFT asset
oynozan Mar 27, 2024
955c96e
Merge branch 'ozan' into beycan
0xBeycan Mar 27, 2024
676790b
added verifyApprove for nft model
0xBeycan Mar 27, 2024
e320257
send method updated
0xBeycan Mar 27, 2024
304f155
updated
0xBeycan Mar 27, 2024
284f746
updated
0xBeycan Mar 27, 2024
84fae15
revert getStatus method
0xBeycan Mar 27, 2024
855b001
updated error types
0xBeycan Mar 30, 2024
0e985d9
transferFrom completed for token
0xBeycan Mar 30, 2024
4b8cc4f
updated allowance to getAllowance
0xBeycan Mar 30, 2024
bef0f4f
assets done
0xBeycan Mar 30, 2024
8533a38
updated
0xBeycan Mar 30, 2024
009dfae
transaction model done
0xBeycan Mar 30, 2024
e58b86f
done ContractTransaction
0xBeycan Mar 30, 2024
1cf29f5
done CoinTransaction
0xBeycan Mar 30, 2024
41ec181
updated
0xBeycan Mar 30, 2024
472050e
updated
0xBeycan Mar 30, 2024
cd07125
updated
0xBeycan Mar 30, 2024
73c1e45
removed verifyApprove methods
0xBeycan Mar 30, 2024
73765ee
updated
0xBeycan Mar 30, 2024
f958380
updated
0xBeycan Mar 30, 2024
a633996
updated
0xBeycan Mar 30, 2024
04228df
updated
0xBeycan Mar 30, 2024
f002071
all models done
0xBeycan Mar 30, 2024
b57587c
updated
0xBeycan Mar 30, 2024
3867905
updated
0xBeycan Mar 30, 2024
50e3b22
updated
0xBeycan Mar 31, 2024
013a8c4
updated
0xBeycan Mar 31, 2024
89ccb78
updated for new types
0xBeycan Mar 31, 2024
ca82412
updated
0xBeycan Mar 31, 2024
832ac42
updated
0xBeycan Mar 31, 2024
6a6e432
listener generalProcess done
0xBeycan Mar 31, 2024
02b3638
ignore test* files
0xBeycan Mar 31, 2024
3f6f6bd
contractProcess done
0xBeycan Mar 31, 2024
2cb8fee
removed direction in listener asset filter
0xBeycan Mar 31, 2024
f33eba1
updated
0xBeycan Mar 31, 2024
df0694e
updated
0xBeycan Mar 31, 2024
496f643
coinProcess done
0xBeycan Mar 31, 2024
969632e
updated
0xBeycan Mar 31, 2024
bd84da0
updated
0xBeycan Mar 31, 2024
f59e476
added objectsEqual method
0xBeycan Mar 31, 2024
a220778
updated
0xBeycan Mar 31, 2024
c40b788
tokenProcess done
0xBeycan Mar 31, 2024
25cbe05
added custom ABI option
0xBeycan Mar 31, 2024
275b8f6
removed unused
0xBeycan Mar 31, 2024
3d0431f
all listeners done
0xBeycan Mar 31, 2024
849ec35
improved
0xBeycan Mar 31, 2024
a3f0bb6
removed
0xBeycan Mar 31, 2024
955266a
added provider to constructors for optional
0xBeycan Mar 31, 2024
2fcc0a2
updated comments
0xBeycan Mar 31, 2024
6836a2c
updated comments
0xBeycan Mar 31, 2024
333202e
updated
0xBeycan Mar 31, 2024
4eb328d
created different signer classes for assets
0xBeycan Mar 31, 2024
41bf26c
updated
0xBeycan Mar 31, 2024
e1802e1
updated
0xBeycan Mar 31, 2024
54012e4
completed index files
0xBeycan Mar 31, 2024
c4c0b5d
configured build options
0xBeycan Mar 31, 2024
8174b92
configured build options
0xBeycan Mar 31, 2024
96b9c2e
updated
0xBeycan Mar 31, 2024
c80a4f5
updated for easy use
0xBeycan Apr 1, 2024
efe93b2
removed
0xBeycan Apr 1, 2024
bf154be
added esbuild for node side
0xBeycan Apr 1, 2024
d0bffcf
updated
0xBeycan Apr 1, 2024
9b4d56b
added websocket checker
0xBeycan Apr 1, 2024
8f754eb
fixed checkWebSocket function
0xBeycan Apr 1, 2024
62a934f
types added for dependencies
0xBeycan Apr 1, 2024
f8f2f25
fixed socket type problem
0xBeycan Apr 1, 2024
f7462d3
ready for all platforms
0xBeycan Apr 1, 2024
3bf0116
Prevented Ethers websocket process from breaking the whole application
0xBeycan Apr 1, 2024
6b3a03e
optimized for listen by address
0xBeycan Apr 1, 2024
ab658e5
updated
0xBeycan Apr 5, 2024
04bf3cf
updated
0xBeycan Apr 5, 2024
188c924
added new types
0xBeycan Apr 5, 2024
52a1b4b
added rpc connection control method
0xBeycan Apr 5, 2024
db097ec
updated
0xBeycan Apr 5, 2024
7823406
configurations
0xBeycan Apr 5, 2024
5195767
added dynamic type creator for networks
0xBeycan Apr 5, 2024
8b03c36
added getTestnets and getMainnets
0xBeycan Apr 5, 2024
aae7463
test configurations
0xBeycan Apr 5, 2024
9876ff9
updated checkWebSocket reject
0xBeycan Apr 5, 2024
b842023
services tests done
0xBeycan Apr 5, 2024
71af5ff
updated
0xBeycan Apr 5, 2024
56d83a5
removed abstract
0xBeycan Apr 5, 2024
c8fab44
created auto publish workflow
0xBeycan Apr 5, 2024
c317398
lint and test
0xBeycan Apr 5, 2024
84788a0
ignored boilerplate folder
0xBeycan Apr 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# EVM CHAINS
RPC_URL='https://sepolia.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161'
WS_URL='wss://sepolia.infura.io/ws/v3/9aa3d95b3bc440fa88ea12eaa4456161'

# Assets
COIN_TRANSFER_TEST_IS_ACTIVE=false
TOKEN_TRANSFER_TEST_IS_ACTIVE=false
TOKEN_APPROVE_TEST_IS_ACTIVE=false
TOKEN_TRANSFER_FROM_TEST_IS_ACTIVE=false
NFT_TRANSACTION_TEST_IS_ACTIVE=false
TRANSACTION_LISTENER_TEST_IS_ACTIVE=false

COIN_BALANCE_TEST_AMOUNT=0.01
TOKEN_BALANCE_TEST_AMOUNT=1000
NFT_BALANCE_TEST_AMOUNT=2
TRANSFER_TEST_AMOUNT=0.0001
TOKEN_TRANSFER_TEST_AMOUNT=1
TOKEN_APPROVE_TEST_AMOUNT=100
NFT_TRANSFER_ID=7

BALANCE_TEST_ADDRESS='0x760A4d3D03928D1e8541A7644B34370c1b79aa9F'
SENDER_PRIVATE_KEY='0x14bd9af4e87981b37b7b2e8a0d1d249b7fcdb7a3bc579c4c31488842d372c0e9'
RECEIVER_PRIVATE_KEY='0x22ac1009c43f251e0b5a808751990abe77a74fe12f390c0cc95ab179a0b61a5a'
SENDER_TEST_ADDRESS='0x110600bF0399174520a159ed425f0D272Ff8b459'
RECEIVER_TEST_ADDRESS='0xbBa4d06D1cEf94b35aDeCfDa893523907fdD36DE'
TOKEN_TEST_ADDRESS='0x4294cb0dD25dC9140B5127f247cBd47Eeb673431'
NFT_TEST_ADDRESS='0x06B8B36e4feD2206E980445C0f0829fc6B2aA91F'
# Assets

# Models
NFT_ID=7
TOKEN_AMOUNT=1
COIN_AMOUNT=0.002548

COIN_SENDER='0x74dBE9cA4F93087A27f23164d4367b8ce66C33e2'
COIN_RECEIVER='0xb3c86232c163a988ce4358b10a2745864bfaa3ba'
TOKEN_SENDER='0x110600bF0399174520a159ed425f0D272Ff8b459'
TOKEN_RECEIVER='0xbBa4d06D1cEf94b35aDeCfDa893523907fdD36DE'
NFT_SENDER='0xbBa4d06D1cEf94b35aDeCfDa893523907fdD36DE'
NFT_RECEIVER='0x110600bF0399174520a159ed425f0D272Ff8b459'

ETHER_TRANSFER_TX='0x566002399664e92f82ed654c181095bdd7ff3d3f1921d963257585891f622251'
TOKEN_TRANSFER_TX='0xdabda3905e585db91768f2ef877f7fbef7c0e8612c0a09c7b379981bdbc48975'
NFT_TRANSFER_TX='0x272a4698cd2062f2463481cf9eb78b68b35d59938383679b7642e6d669ac87eb'
# Models
# EVM CHAINS
8 changes: 7 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,11 @@
"rules": {
"filenames/match-exported": ["error", "pascal"]
},
"ignorePatterns": ["**/*.d.ts", "dist/", "node_modules/"]
"ignorePatterns": [
"**/*.d.ts",
"dist/",
"node_modules/",
"test*.ts",
"packages/networks/boilerplate/"
]
}
48 changes: 48 additions & 0 deletions .github/workflows/npm-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: NPM Auto Publish

on:
release:
types:
- released
branches:
- master

jobs:
check-packages:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Login to npm registry
run: npm config set //registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN
env:
NPM_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}

- name: Check if version changed
run: |
npm install -g pnpm

for dir in packages/*/ packages/networks/*/; do
if [ -d "$dir" ] && [ "$(basename "$dir")" != "boilerplate" ]; then
cd "$dir" || exit

PACKAGE_INFO=$(node -p "JSON.stringify(require('./package.json'))")
PACKAGE_NAME=$(echo "$PACKAGE_INFO" | jq -r '.name')
CURRENT_VERSION=$(echo "$PACKAGE_INFO" | jq -r '.version')

PREVIOUS_VERSION=$(npm show "$PACKAGE_NAME" version)

if [ "$PREVIOUS_VERSION" != "$CURRENT_VERSION" ]; then
echo "Version changed for $PACKAGE_NAME from $PREVIOUS_VERSION to $CURRENT_VERSION"
pnpm install && npm publish
fi

cd - || exit
fi
done
49 changes: 49 additions & 0 deletions .github/workflows/test-and-lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Test and Lint Check

on:
pull_request:
types: [opened, synchronize, reopened, edited]
branches:
- alpha
- master

jobs:
test_and_lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Create .env file
run: cp .env.example .env

- name: Install dependencies
run: |
npm install -g pnpm

for dir in packages/*/ packages/networks/*/; do
if [ -d "$dir" ] && [ "$(basename "$dir")" != "boilerplate" ]; then
cd "$dir" || exit
pnpm install
cd - || exit
fi
done

- name: Run test
run: npm run test

- name: Runt lint
run: npm run lint

- name: Set PR status
if: ${{ github.event_name == 'pull_request' }}
run: |
TOKEN="${{ secrets.GITHUB_TOKEN }}"
STATUS_URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}"
STATUS="{\"state\":\"success\",\"context\":\"Test Process\",\"description\":\"Test Process passed\"}"
curl -X POST -H "Authorization: token $TOKEN" -d "$STATUS" "$STATUS_URL"
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ dist
dist-ssr
*.local
index.html
test*.ts
test*.js
test*.cjs
.env

# Editor directories and files
.vscode/*
Expand Down
19 changes: 19 additions & 0 deletions esbuild.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { build, type BuildOptions } from 'esbuild'

const baseConfig: BuildOptions = {
entryPoints: ['src/index.ts'],
bundle: true,
platform: 'node',
format: 'cjs',
minify: true,
sourcemap: true,
logLevel: 'info',
outfile: 'dist/index.cjs'
}

export default (customConfig: BuildOptions = {}): void => {
build({
...baseConfig,
...customConfig
}).catch(() => process.exit(1))
}
12 changes: 4 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,14 @@
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"build:watch": "vite build --watch",
"test": "vitest",
"format": "prettier --write packages/",
"lint": "eslint . --ext .ts --ignore-path .gitignore"
},
"devDependencies": {
"@types/node": "^20.11.20",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"esbuild": "^0.20.2",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^43.0.1",
Expand All @@ -25,13 +22,12 @@
"eslint-plugin-require-extensions": "^0.1.3",
"jsdom": "^24.0.0",
"prettier": "^3.2.5",
"tsx": "^4.7.1",
"typescript": "^5.3.3",
"vite": "^5.1.4",
"vite-plugin-dts": "^3.8.1",
"vite-plugin-env-compatible": "^2.0.1",
"vite-plugin-node-polyfills": "^0.21.0",
"vitest": "^1.3.1"
},
"dependencies": {
"abi-decoder": "^2.4.0",
"ethers": "^6.11.1"
}
}
3 changes: 3 additions & 0 deletions packages/networks/boilerplate/esbuild.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
void import('../../../esbuild.ts').then((module) => {
module.default()
})
29 changes: 20 additions & 9 deletions packages/networks/boilerplate/package.json
Original file line number Diff line number Diff line change
@@ -1,29 +1,40 @@
{
"name": "@multiplechain/network-name",
"name": "@multiplechain/evm-chains",
"version": "0.1.0",
"type": "module",
"main": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
"module": "dist/index.es.js",
"unpkg": "dist/index.umd.js",
"browser": "dist/index.umd.js",
"jsdelivr": "dist/index.umd.js",
"exports": {
".": {
"import": "./dist/index.es.js",
"require": "./dist/index.cjs"
}
},
"files": [
"dist",
"README.md",
"!tsconfig.tsbuildinfo"
],
"scripts": {
"clean": "rm -rf dist",
"build": "tsc --build",
"watch": "tsc --watch",
"build:vite": "vite build",
"build:node": "tsx esbuild.ts",
"typecheck": "tsc --noEmit",
"lint": "eslint . --ext .ts",
"test": "vitest run --dir tests",
"prepublishOnly":"pnpm run build"
"prepublishOnly": "pnpm run build",
"build": "pnpm run build:vite && pnpm run build:node"
},
"keywords": [
"web3",
"crypto",
"blockchain",
"multiple-chain",
"standard"
"multiple-chain"
],
"author": "MultipleChain",
"license": "MIT",
Expand All @@ -36,7 +47,7 @@
"url": "https://github.com/MultipleChain/js/issues"
},
"dependencies": {
"@multiplechain/types": "^0.1.13",
"@multiplechain/utils": "^0.1.7"
"@multiplechain/types": "^0.1.35",
"@multiplechain/utils": "^0.1.16"
}
}
Loading