Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
406 commits
Select commit Hold shift + click to select a range
5f8aaff
[Automated changes] GO files
github-actions[bot] Jul 25, 2025
bfeba7b
[Automated changes] C# files
github-actions[bot] Jul 25, 2025
c001e11
feat: test prod env (#26500)
carlosmiei Jul 25, 2025
81a7929
feat: actions, use prod env (#26501)
carlosmiei Jul 25, 2025
257c551
Rm prod test (#26502)
carlosmiei Jul 25, 2025
7cc0176
feat(cryptocom): add fetchFundingRate (#26498)
lucasjamar Jul 25, 2025
2f8205a
[Automated changes] JS files
github-actions[bot] Jul 25, 2025
4981a33
[Automated changes] Python files
github-actions[bot] Jul 25, 2025
4192e9a
[Automated changes] PHP files
github-actions[bot] Jul 25, 2025
fed78c1
[Automated changes] GO files
github-actions[bot] Jul 25, 2025
f694ef9
[Automated changes] C# files
github-actions[bot] Jul 25, 2025
a3675ec
Add USDC support, add new endpoint PUT /g-orders/create (#26507)
marioarranzr Jul 25, 2025
932e7f8
[Automated changes] JS files
github-actions[bot] Jul 25, 2025
5747423
[Automated changes] Python files
github-actions[bot] Jul 25, 2025
3fc0bb1
[Automated changes] PHP files
github-actions[bot] Jul 25, 2025
24e10dd
[Automated changes] GO files
github-actions[bot] Jul 25, 2025
1e0061f
[Automated changes] C# files
github-actions[bot] Jul 25, 2025
c3af78b
build/export-exchanges change certified exchanges ordering
kroitor Jul 26, 2025
62cdfab
README.md certified exchanges
kroitor Jul 26, 2025
23625dd
bingx withdraw parseTransaction timestamp fix
kroitor Jul 27, 2025
4a3d2e9
[Automated changes] JS files
github-actions[bot] Jul 26, 2025
8ecc320
chore: remove dev dep esmify (#26511)
carlosmiei Jul 26, 2025
d8f9bbd
Update package log 3 (#26512)
carlosmiei Jul 26, 2025
96794f0
feat(hyperliquid): support non-usdc tokens for subaccount transfer (#…
zlfn Jul 28, 2025
0e75d9d
[Automated changes] JS files
github-actions[bot] Jul 28, 2025
2ca0cef
fix(go): exclude BrokerCode from msgpack in OrderMessage to fix Hyper…
tttpeng Jul 28, 2025
944cf6a
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
583475a
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
51d6baa
[Automated changes] C# files
github-actions[bot] Jul 28, 2025
eff6f16
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
fab3afc
luno.has leverage methods (#26518)
samgermain Jul 28, 2025
05f84e8
[Automated changes] JS files
github-actions[bot] Jul 28, 2025
aefe3f7
fetchPaginatedCallDynamic until param spelling (#26514)
caoilainnl Jul 28, 2025
03b88e7
latoken.has leverage methods (#26513)
samgermain Jul 28, 2025
1ffe925
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
83a2b7c
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
5876af2
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
bd1a504
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
b7535fd
Make TARA network uppercase in Kucoin, unify optimism name in gate an…
profyverya Jul 28, 2025
a0a0db5
[Automated changes] JS files
github-actions[bot] Jul 28, 2025
3f9ac48
indodax.has leverage methods (#26510)
samgermain Jul 28, 2025
3be3893
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
d72f49f
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
c22eb45
[Automated changes] C# files
github-actions[bot] Jul 28, 2025
f8f41a1
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
3b64902
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
dc18394
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
cabd001
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
09e3e1d
[Automated changes] C# files
github-actions[bot] Jul 28, 2025
2e54c40
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
c5fe77f
refactor(defaultTradeId): move to base (#26478)
ttodua Jul 28, 2025
bd70395
[Automated changes] JS files
github-actions[bot] Jul 28, 2025
4cecb74
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
47c3b0a
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
6eba080
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
53aaf88
[Automated changes] C# files
github-actions[bot] Jul 28, 2025
dd7f63d
feat(bybit): unWatchPositions (#26519)
pcriadoperez Jul 28, 2025
189e637
[Automated changes] JS files
github-actions[bot] Jul 28, 2025
4221b7e
[Automated changes] Python files
github-actions[bot] Jul 28, 2025
52c6e03
[Automated changes] PHP files
github-actions[bot] Jul 28, 2025
51d27f6
[Automated changes] GO files
github-actions[bot] Jul 28, 2025
f7daff6
[Automated changes] C# files
github-actions[bot] Jul 28, 2025
8d143a4
decimalToPrecision - update all langs (#26289)
ttodua Jul 29, 2025
f53443f
[Automated changes] JS files
github-actions[bot] Jul 29, 2025
8298545
[Automated changes] Python files
github-actions[bot] Jul 29, 2025
37e9f89
[Automated changes] PHP files
github-actions[bot] Jul 29, 2025
992d826
[Automated changes] C# files
github-actions[bot] Jul 29, 2025
5aad50b
[Automated changes] GO files
github-actions[bot] Jul 29, 2025
80cd7cb
fix(exmo): correct from parameter (#26524)
CH-EdwinB Jul 29, 2025
eca78ed
[Automated changes] JS files
github-actions[bot] Jul 29, 2025
1b4a9be
[Automated changes] Python files
github-actions[bot] Jul 29, 2025
ebf7020
[Automated changes] PHP files
github-actions[bot] Jul 29, 2025
9c3d84f
[Automated changes] GO files
github-actions[bot] Jul 29, 2025
5a816a6
[Automated changes] C# files
github-actions[bot] Jul 29, 2025
8216771
feat(binance): add apis (#26530)
sc0Vu Jul 29, 2025
6a8c570
[Automated changes] JS files
github-actions[bot] Jul 29, 2025
6ef2875
[Automated changes] Python files
github-actions[bot] Jul 29, 2025
8c4a6ba
[Automated changes] PHP files
github-actions[bot] Jul 29, 2025
afcc707
[Automated changes] C# files
github-actions[bot] Jul 29, 2025
adbd7ce
[Automated changes] GO files
github-actions[bot] Jul 29, 2025
1620137
fix(go): omitempty builder (#26531)
sc0Vu Jul 30, 2025
1b76a19
mercado.has leverage methods (#26532)
samgermain Jul 30, 2025
5bdc720
[Automated changes] JS files
github-actions[bot] Jul 30, 2025
b89ffb8
[Automated changes] Python files
github-actions[bot] Jul 30, 2025
0a5a511
[Automated changes] PHP files
github-actions[bot] Jul 30, 2025
fdcf207
[Automated changes] GO files
github-actions[bot] Jul 30, 2025
eee605b
[Automated changes] C# files
github-actions[bot] Jul 30, 2025
8ddaee7
fix(python): socksProxy (#26527)
ttodua Jul 30, 2025
ca35167
fix(binance): fetchTickers for rolling window (#26528)
ttodua Jul 30, 2025
5eede1c
[Automated changes] JS files
github-actions[bot] Jul 30, 2025
db8302e
[Automated changes] Python files
github-actions[bot] Jul 30, 2025
b0daa08
[Automated changes] PHP files
github-actions[bot] Jul 30, 2025
cc3f0d9
[Automated changes] GO files
github-actions[bot] Jul 30, 2025
8622dc0
[Automated changes] C# files
github-actions[bot] Jul 30, 2025
f3f8347
fix(c#): stackoverflow and concurrency issue (#26534)
carlosmiei Jul 30, 2025
3b21335
[Automated changes] 4.4.97
github-actions[bot] Jul 30, 2025
f4ac0f9
chore: update-js-only release (#26536)
carlosmiei Jul 30, 2025
f736d91
[Automated changes] JS files
github-actions[bot] Jul 30, 2025
dc6fed8
[Automated changes] Python files
github-actions[bot] Jul 30, 2025
602b23a
cryptocom error mapping (#26540)
ndubel Jul 31, 2025
2a1f9a9
[Automated changes] JS files
github-actions[bot] Jul 31, 2025
25481fb
Ndax has (#26538)
samgermain Jul 31, 2025
d2c9e58
[Automated changes] Python files
github-actions[bot] Jul 31, 2025
636c160
[Automated changes] Python files
github-actions[bot] Jul 31, 2025
3c48f96
[Automated changes] PHP files
github-actions[bot] Jul 31, 2025
0824e65
[Automated changes] PHP files
github-actions[bot] Jul 31, 2025
7057a66
[Automated changes] GO files
github-actions[bot] Jul 31, 2025
48d1acd
[Automated changes] C# files
github-actions[bot] Jul 31, 2025
37b4bf5
[Automated changes] GO files
github-actions[bot] Jul 31, 2025
955b504
[Automated changes] C# files
github-actions[bot] Jul 31, 2025
8f66489
fix(c#): aggregate implementation (#26541)
carlosmiei Jul 31, 2025
ff3e990
[Automated changes] JS files
github-actions[bot] Jul 31, 2025
2c5e6ce
feat(bitget): use "recent" endpoints for mark/index candles (#26537)
xmatthias Jul 31, 2025
376f784
[Automated changes] JS files
github-actions[bot] Jul 31, 2025
0b4fdd5
[Automated changes] Python files
github-actions[bot] Jul 31, 2025
43492be
[Automated changes] PHP files
github-actions[bot] Jul 31, 2025
d25802d
[Automated changes] GO files
github-actions[bot] Jul 31, 2025
fbf2fd9
[Automated changes] C# files
github-actions[bot] Jul 31, 2025
d233cc1
okx error mapping (#26542)
ndubel Jul 31, 2025
587161b
[Automated changes] JS files
github-actions[bot] Jul 31, 2025
5506ab0
[Automated changes] Python files
github-actions[bot] Jul 31, 2025
ff88e60
[Automated changes] PHP files
github-actions[bot] Jul 31, 2025
396d9a5
[Automated changes] GO files
github-actions[bot] Jul 31, 2025
91ed6de
[Automated changes] C# files
github-actions[bot] Jul 31, 2025
fac175e
okx errorHierarchy added new RestrictedLocation error type fix #26542
kroitor Jul 31, 2025
d682c6e
[Automated changes] JS files
github-actions[bot] Jul 31, 2025
95a5df3
[Automated changes] Python files
github-actions[bot] Jul 31, 2025
c4db0b3
[Automated changes] PHP files
github-actions[bot] Jul 31, 2025
e7ca24e
chore: revert accidental bybit comment typo (#26544)
xmatthias Aug 1, 2025
f8d5c28
fix different build issues (#26543)
ttodua Aug 1, 2025
e20e3a3
[Automated changes] JS files
github-actions[bot] Aug 1, 2025
9ed4fb5
[Automated changes] Python files
github-actions[bot] Aug 1, 2025
6db3d53
[Automated changes] Python files
github-actions[bot] Aug 1, 2025
56e4f3e
[Automated changes] PHP files
github-actions[bot] Aug 1, 2025
bb2505e
[Automated changes] PHP files
github-actions[bot] Aug 1, 2025
da62c47
[Automated changes] GO files
github-actions[bot] Aug 1, 2025
a6ba8a1
[Automated changes] GO files
github-actions[bot] Aug 1, 2025
9635577
[Automated changes] C# files
github-actions[bot] Aug 1, 2025
46f0b27
[Automated changes] C# files
github-actions[bot] Aug 1, 2025
b445482
fix(python): decimalToPrecision - precision arg (#26547)
ttodua Aug 1, 2025
139d4d3
[Automated changes] 4.4.98
github-actions[bot] Aug 1, 2025
71bfc02
feat(bitget): unified trading account support (#26272)
Dan-krm Aug 1, 2025
771a968
[Automated changes] JS files
github-actions[bot] Aug 1, 2025
da89756
fix transpileCryptoTestsToGo with new ast-transpiler (#26548)
caoilainnl Aug 1, 2025
858b54a
[Automated changes] Python files
github-actions[bot] Aug 1, 2025
0046d4e
[Automated changes] PHP files
github-actions[bot] Aug 1, 2025
e6a277f
[Automated changes] GO files
github-actions[bot] Aug 1, 2025
50be0bf
[Automated changes] C# files
github-actions[bot] Aug 1, 2025
2b87a27
Gate(fix): update MATIC chain name (#26559)
profyverya Aug 3, 2025
25b50a4
[Automated changes] JS files
github-actions[bot] Aug 3, 2025
b764fdb
[Automated changes] Python files
github-actions[bot] Aug 3, 2025
5ba8243
[Automated changes] PHP files
github-actions[bot] Aug 3, 2025
73e2ec8
[Automated changes] C# files
github-actions[bot] Aug 3, 2025
451634e
Coinex(fix): parse network names (#26553)
profyverya Aug 3, 2025
68e1715
[Automated changes] JS files
github-actions[bot] Aug 3, 2025
d5b6fae
[Automated changes] Python files
github-actions[bot] Aug 3, 2025
62bcda7
[Automated changes] PHP files
github-actions[bot] Aug 3, 2025
712460f
[Automated changes] C# files
github-actions[bot] Aug 3, 2025
955ab09
fix(example): first timestamp check (#26551)
ttodua Aug 3, 2025
64ab0a9
Bitget(fix): BEP20 network name (#26552)
profyverya Aug 3, 2025
4ab8bcf
[Automated changes] GO files
github-actions[bot] Aug 3, 2025
990d44b
fix(bybit): increase max pagination calls for bybit leverage tiers (#…
xmatthias Aug 4, 2025
fc4828b
[Automated changes] JS files
github-actions[bot] Aug 4, 2025
f60aa53
[Automated changes] Python files
github-actions[bot] Aug 4, 2025
8c017c5
[Automated changes] PHP files
github-actions[bot] Aug 4, 2025
6c16b85
[Automated changes] GO files
github-actions[bot] Aug 4, 2025
c9db627
[Automated changes] C# files
github-actions[bot] Aug 4, 2025
da7dc97
fix(bitget): throw if order not found (#26565)
carlosmiei Aug 4, 2025
80bc068
[Automated changes] JS files
github-actions[bot] Aug 4, 2025
e85baa8
[Automated changes] Python files
github-actions[bot] Aug 4, 2025
e99adab
[Automated changes] PHP files
github-actions[bot] Aug 4, 2025
9133991
handleErrorMessage return type, watchLiquidationsForSymbols unificati…
caoilainnl Aug 4, 2025
e5b6a0b
[Automated changes] JS files
github-actions[bot] Aug 4, 2025
667097e
[Automated changes] Python files
github-actions[bot] Aug 4, 2025
2180bec
[Automated changes] PHP files
github-actions[bot] Aug 4, 2025
a06c1c6
[Automated changes] GO files
github-actions[bot] Aug 4, 2025
ef16f28
[Automated changes] C# files
github-actions[bot] Aug 4, 2025
3b80de1
transpiler fix typescript errors (#26568)
caoilainnl Aug 5, 2025
5e11ece
`novadax.has leverage methods (#26567)
samgermain Aug 5, 2025
3ef52f3
generateImplicitApi typescript errors (#26571)
caoilainnl Aug 5, 2025
14ae182
chore: improve go action (#26566)
carlosmiei Aug 5, 2025
bff976a
[Automated changes] JS files
github-actions[bot] Aug 5, 2025
815b572
[Automated changes] Python files
github-actions[bot] Aug 5, 2025
69e3b26
[Automated changes] GO files
github-actions[bot] Aug 5, 2025
4915a25
[Automated changes] PHP files
github-actions[bot] Aug 5, 2025
012f119
[Automated changes] C# files
github-actions[bot] Aug 5, 2025
78ddd4e
feat(bybit): withdraw endpoint accountType update (#26555)
Dan-krm Aug 5, 2025
8a63639
[Automated changes] JS files
github-actions[bot] Aug 5, 2025
bcb2fa5
fix(binance): market (#26570)
sc0Vu Aug 5, 2025
c5b1d6e
[Automated changes] JS files
github-actions[bot] Aug 5, 2025
19def63
[Automated changes] Python files
github-actions[bot] Aug 5, 2025
2c0ae16
[Automated changes] PHP files
github-actions[bot] Aug 5, 2025
cb1d66f
[Automated changes] C# files
github-actions[bot] Aug 5, 2025
9b21d24
[Automated changes] GO files
github-actions[bot] Aug 5, 2025
989e5fc
[Automated changes] Python files
github-actions[bot] Aug 5, 2025
3788237
[Automated changes] PHP files
github-actions[bot] Aug 5, 2025
9cfc77a
[Automated changes] C# files
github-actions[bot] Aug 5, 2025
0a2714b
fix go warnings (#26572)
caoilainnl Aug 5, 2025
e51d6d5
fix(cryptocom): fetchOrderBook limit (#26563)
ttodua Aug 5, 2025
3ca64ec
[Automated changes] JS files
github-actions[bot] Aug 5, 2025
a8fb7cf
[Automated changes] Python files
github-actions[bot] Aug 5, 2025
7ab20a6
[Automated changes] PHP files
github-actions[bot] Aug 5, 2025
7b10cd8
[Automated changes] C# files
github-actions[bot] Aug 5, 2025
e60d400
[Automated changes] GO files
github-actions[bot] Aug 5, 2025
0886c30
[Automated changes] GO files
github-actions[bot] Aug 5, 2025
6814597
Coinex: implement fetchDepositWithdrawFees method (#26576)
profyverya Aug 5, 2025
439e891
[Automated changes] JS files
github-actions[bot] Aug 5, 2025
19b5216
[Automated changes] Python files
github-actions[bot] Aug 5, 2025
3256ce5
[Automated changes] PHP files
github-actions[bot] Aug 5, 2025
84833fc
[Automated changes] C# files
github-actions[bot] Aug 5, 2025
b3625c0
chore: rm command from package.json (#26578)
carlosmiei Aug 5, 2025
9f74b6a
[Automated changes] GO files
github-actions[bot] Aug 5, 2025
b2eeb50
feat: add Hibachi exchange (#26550)
carlosmiei Aug 6, 2025
c48199c
fix(gate): rm network key polygon (#26582)
carlosmiei Aug 6, 2025
884c7f3
[Automated changes] JS files
github-actions[bot] Aug 6, 2025
4a1a3a5
[Automated changes] Python files
github-actions[bot] Aug 6, 2025
6184a30
[Automated changes] PHP files
github-actions[bot] Aug 6, 2025
b343d89
[Automated changes] C# files
github-actions[bot] Aug 6, 2025
f1c8c33
[Automated changes] GO files
github-actions[bot] Aug 6, 2025
81b0d13
[Automated changes] 4.4.99
github-actions[bot] Aug 6, 2025
2cfd8d3
onetrading.has leverage methods (#26586)
samgermain Aug 7, 2025
6e6aa67
fix a typo (#26584)
zhiqiangxu Aug 7, 2025
91d482f
[Automated changes] JS files
github-actions[bot] Aug 7, 2025
afa2db0
feat(bybit): add static test (#26588)
carlosmiei Aug 7, 2025
03b14ee
feat(hyperliquid): add reserveRequestWeight (#26589)
carlosmiei Aug 7, 2025
a575ca1
[Automated changes] Python files
github-actions[bot] Aug 7, 2025
299b84d
[Automated changes] PHP files
github-actions[bot] Aug 7, 2025
23316ff
[Automated changes] C# files
github-actions[bot] Aug 7, 2025
1a5d548
[Automated changes] GO files
github-actions[bot] Aug 7, 2025
e095fab
[Automated changes] PHP files
github-actions[bot] Aug 7, 2025
8409813
build fixes (#25218)
caoilainnl Aug 7, 2025
89b26d0
[Automated changes] JS files
github-actions[bot] Aug 7, 2025
977620a
[Automated changes] Python files
github-actions[bot] Aug 7, 2025
23e58c2
[Automated changes] C# files
github-actions[bot] Aug 7, 2025
69d6737
[Automated changes] GO files
github-actions[bot] Aug 7, 2025
a01c3d8
ts type fixes (#26237)
caoilainnl Aug 7, 2025
78b17ff
[Automated changes] JS files
github-actions[bot] Aug 7, 2025
3d689d3
[Automated changes] Python files
github-actions[bot] Aug 7, 2025
55efa53
[Automated changes] PHP files
github-actions[bot] Aug 7, 2025
4078454
[Automated changes] C# files
github-actions[bot] Aug 7, 2025
f2915d7
[Automated changes] GO files
github-actions[bot] Aug 7, 2025
aa12e92
fix(c#): build warnings (#26590)
carlosmiei Aug 7, 2025
6e87b71
[Automated changes] JS files
github-actions[bot] Aug 7, 2025
26cf0a7
[Automated changes] Python files
github-actions[bot] Aug 7, 2025
e5f233d
[Automated changes] PHP files
github-actions[bot] Aug 7, 2025
5a3b8b9
[Automated changes] C# files
github-actions[bot] Aug 7, 2025
eda42e8
[Automated changes] GO files
github-actions[bot] Aug 7, 2025
6ef47c0
ast-transpiler bump (#26580)
caoilainnl Aug 7, 2025
267069c
[Automated changes] GO files
github-actions[bot] Aug 7, 2025
eef501a
fix(go): extend headers from options (#26594)
carlosmiei Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 12 additions & 6 deletions .github/workflows/go-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21.x"
go-version: "1.24.x"
- name: Setup Node.js
uses: actions/setup-node@v3
- name: Install npm dependencies
Expand Down Expand Up @@ -51,9 +51,15 @@ jobs:
# - name: Install dependencies
# run: cd go && go get ./ccxt && cd ..
- name: Build
run: cd go && go build ./v4 && cd ..
run: go build -C go ./v4
- name: Build tests
run: cd go && go build ./tests/main.go && cd ..
run: go -C go build ./tests/main.go
- name: Format go files
run: go fmt .
working-directory: go/v4
- name: Format go tests
run: go fmt .
working-directory: go/tests/base
- name: Test GO Types
if: env.important_modified == 'true'
run: npm run test-types-go
Expand Down Expand Up @@ -140,7 +146,7 @@ jobs:
- name: Restore shared_env
run: ./utils/restore_shared_env.sh
- name: Build tests
run: cd go/ && go build ./tests/main.go
run: go build -C go ./tests/main.go
- name: Install npm dependencies
run: npm ci --include=dev
- name: Export exchanges
Expand All @@ -154,9 +160,9 @@ jobs:
# - name: Adjust permissions
# run: cd go && chmod +x main
- name: Build
run: cd go && go build ./v4 && cd ..
run: go build -C go ./v4
- name: Build tests
run: cd go && go build ./tests/main.go && cd ..
run: go build -C go ./tests/main.go
- name: Live tests
if: env.important_modified == 'true'
run: node run-tests --go --useProxy
Expand Down
24 changes: 2 additions & 22 deletions .github/workflows/release-js-only.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ permissions:
jobs:
manual-job:
runs-on: ubuntu-latest
environment: Prod
if: github.ref == 'refs/heads/master' && contains(fromJSON('["kroitor", "frosty00", "carlosmiei"]'), github.actor)

steps:
Expand All @@ -33,31 +34,10 @@ jobs:
with:
fetch-depth: 2
fetch-tags: true
- name: Setup PHP with PECL extension
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
# cache: true
ini-values: |
zend.assertions=1
display_errors=On
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: create usr/share/dotnet folder
run: |
sudo mkdir -p /usr/share/dotnet
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '7.0.x'
dotnet-quality: 'preview'
run: |
sudo mkdir -p /usr/share/dotnet
- name: Install NPM dependencies
run: npm ci
- name: Transpile TS
run: npm run tsBuild
- uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
token: ${{ secrets.NPM_PROD }}
7 changes: 4 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ permissions:
jobs:
manual-job:
runs-on: ubuntu-latest
environment: Prod
if: github.ref == 'refs/heads/master' && contains(fromJSON('["kroitor", "frosty00", "carlosmiei"]'), github.actor)

steps:
Expand Down Expand Up @@ -140,15 +141,15 @@ jobs:
run: npm run buildCSRelease
- name: Deploy C#
env:
NUGGET_TOKEN: ${{ secrets.NUGET_TOKEN }}
NUGGET_TOKEN: ${{ secrets.NUGET_PROD }}
run: ./cs/deploy.sh;
- name: Deploy Python
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
PYPI_TOKEN: ${{ secrets.PYPI_PROD }}
run: cd python && ./deploy.sh && cd ..;
- uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
token: ${{ secrets.NPM_PROD }}
# jobs:
# manual-job:
# runs-on: ubuntu-latest
Expand Down
23 changes: 23 additions & 0 deletions .github/workflows/test-env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Test PROD environment

on:
workflow_dispatch:
inputs:
example_input:
description: 'An example input value'
required: false
default: 'default-value'

jobs:
deploy:
name: Deploy to Production
runs-on: ubuntu-latest
steps:
- name: Check if secret is available if not prod
run: |
if [ -z "${{ secrets.NUGET_PROD }}" ]; then
echo "❌ DEPLOY_KEY is NOT defined in this environment."
exit 1
else
echo "✅ DEPLOY_KEY is available."
fi
33 changes: 17 additions & 16 deletions README.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions build/csharpTranspiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1345,7 +1345,8 @@ class NewTranspiler {
[ /object exchange(?=[,)])/g, 'Exchange exchange' ],
[ /throw new Error/g, 'throw new Exception' ],
[/testSharedMethods\.assertTimestampAndDatetime\(exchange, skippedProperties, method, orderbook\)/, '// testSharedMethods.assertTimestampAndDatetime (exchange, skippedProperties, method, orderbook)'], // tmp disabling timestamp check on the orderbook
[ /void function/g, 'void']
[ /void function/g, 'void'],
[/(\w+)\.spawn\(([^,]+),(.+)\)/gm, '$1.spawn($2, new object[] {$3})'],
];

if (isWs) {
Expand Down Expand Up @@ -1431,6 +1432,5 @@ async function runMain () {
}

if (isMainEntry(metaUrl)) {
// @ts-expect-error
await runMain();
}
}
47 changes: 46 additions & 1 deletion build/export-exchanges.js
Original file line number Diff line number Diff line change
Expand Up @@ -439,8 +439,53 @@ function exportSupportedAndCertifiedExchanges (exchanges, { allExchangesPaths, c
}

const certifiedExchanges = arrayOfExchanges.filter (exchange => exchange.certified)
// certified exchanges are sorted according to the following order
const certifiedExchangesSortingOrder = [
'binance',
'binanceusdm',
'binancecoinm',
'bybit',
'okx',
'gate',
'kucoin',
'kucoinfutures',
'bitget',
'hyperliquid',
'bitmex',
'bingx',
'htx',
'mexc',
'bitmart',
'cryptocom',
'coinex',
'hashkey',
'woo',
'woofipro',
]

let copyOfCertifiedExchanges = certifiedExchanges.slice (); // makes a new array with the same elements
let reorderedCertifiedExchanges = []
for (let i = 0; i < certifiedExchangesSortingOrder.length; i++) {
const exchangeId = certifiedExchangesSortingOrder[i]
const index = copyOfCertifiedExchanges.findIndex (exchange => exchange.id == exchangeId)
if (index >= 0) {
const splicedExchanges = copyOfCertifiedExchanges.splice (index, 1)
const exchange = splicedExchanges[0]
reorderedCertifiedExchanges.push (exchange)
} else {
const errorMessage = exchangeId + ' not certified in export-exchanges.js'
console.log (errorMessage)
throw new Error (errorMessage)
}
}
if (copyOfCertifiedExchanges.length > 0) {
const errorMessage = 'Not all certified exchanges listed in export-exchanges.js'
console.log (errorMessage)
throw new Error (errorMessage)
}

if (certifiedExchangesPaths && certifiedExchanges.length) {
const certifiedExchangesMarkdownTable = createMarkdownTable (certifiedExchanges, createMarkdownListOfCertifiedExchanges, [ 3, 6 ])
const certifiedExchangesMarkdownTable = createMarkdownTable (reorderedCertifiedExchanges, createMarkdownListOfCertifiedExchanges, [ 3, 6 ])
, certifiedExchangesReplacement = '$1' + certifiedExchangesMarkdownTable + "\n"
, certifiedExchangesRegex = new RegExp ("^(## Certified Cryptocurrency Exchanges\n{3})(?:\\|.+\\|$\n)+", 'm')
for (const exchangePath of certifiedExchangesPaths) {
Expand Down
42 changes: 21 additions & 21 deletions build/generateImplicitAPI.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import ccxt from '../ts/ccxt.js';
import ccxt, { Dict, Exchange } from '../ts/ccxt.js';
import { promisify } from 'util';
import fs from 'fs';
import log from 'ololog'
Expand All @@ -13,14 +13,14 @@ const GO_PATH = './go/v4/'
const IDEN = ' ';


let storedCamelCaseMethods = {};
let storedUnderscoreMethods = {};
let storedTypeScriptMethods = {};
let storedCSharpMethods = {};
let storedContext = {};
let storedPhpMethods = {};
let storedPyMethods = {};
let storedGoMethods = {};
let storedCamelCaseMethods: Dict = {};
let storedUnderscoreMethods: Dict = {};
let storedTypeScriptMethods: Dict = {};
let storedCSharpMethods: Dict = {};
let storedContext: Dict = {};
let storedPhpMethods: Dict = {};
let storedPyMethods: Dict = {};
let storedGoMethods: Dict = {};


const [,, ...args] = process.argv
Expand All @@ -37,18 +37,18 @@ const langKeys = {
const promisedWriteFile = promisify (fs.writeFile);
const promisedUnlinkFile = promisify (fs.unlink)

function isHttpMethod(method){
function isHttpMethod(method: string): boolean {
return ['get', 'post', 'put', 'delete', 'patch'].includes (method);
}
//-------------------------------------------------------------------------

const capitalize = (s) => {
const capitalize = (s: string): string => {
return s.length ? (s.charAt (0).toUpperCase () + s.slice (1)) : s;
};

//-------------------------------------------------------------------------

function lowercaseFirstLetter(string) {
function lowercaseFirstLetter(string: string): string {
return string.charAt(0).toLowerCase() + string.slice(1);
}

Expand All @@ -68,7 +68,7 @@ function getPreamble () {

//-------------------------------------------------------------------------

function generateImplicitMethodNames(id, api, paths = []){
function generateImplicitMethodNames(id: string, api: string, paths: string[] = []){
const keys = Object.keys(api);
for (const key of keys){
let value = api[key];
Expand Down Expand Up @@ -96,7 +96,7 @@ function generateImplicitMethodNames(id, api, paths = []){
storedCamelCaseMethods[id].push (camelCasePath)
let underscorePath = result.map (x => x.toLowerCase ()).join ('_')
storedUnderscoreMethods[id].push (underscorePath)
let config: {} = undefined
let config: {} | undefined = undefined
if (Array.isArray (value)) {
config = {}
} else {
Expand Down Expand Up @@ -258,14 +258,14 @@ function createImplicitMethodsGo(){

//-------------------------------------------------------------------------

async function editFiles (path, methods, extension) {
async function editFiles (path: string, methods: Dict, extension: string) {
const exchanges = Object.keys (storedCamelCaseMethods);
const files = exchanges.map (ex => path + ex + extension)
await Promise.all (files.map ((path, idx) => promisedWriteFile (path, methods[exchanges[idx]].join ('\n') + '\n')))
await unlinkFiles (path, extension)
}

async function unlinkFiles (path, extension) {
async function unlinkFiles (path: string, extension: string) {
const exchanges = Object.keys (storedCamelCaseMethods);
const abstract = fs.readdirSync (path)
const ext = new RegExp (extension + '$')
Expand All @@ -290,7 +290,7 @@ async function editAPIFilesGo(){

//-------------------------------------------------------------------------

function createTypescriptHeader(instance, parent){
function createTypescriptHeader(instance: Exchange, parent: string){
const exchange = instance.id;
const importType = 'import { implicitReturnType } from \'../base/types.js\';'
const importParent = (parent === 'Exchange') ?
Expand All @@ -303,7 +303,7 @@ function createTypescriptHeader(instance, parent){

//-------------------------------------------------------------------------

function createPhpHeader(instance, parent){
function createPhpHeader(instance: Exchange, parent: string){
const exchange = instance.id;
const phpParent = (parent === 'Exchange') ? '\\ccxt\\Exchange' : '\\ccxt\\' + parent;
const phpHeader = `abstract class ${instance.id} extends ${phpParent} {`
Expand All @@ -319,23 +319,23 @@ namespace ccxt\\abstract;

//-------------------------------------------------------------------------

function createPyHeader(instance, parent){
function createPyHeader(instance: Exchange, parent: string){
const exchange = instance.id;
const pyImports = 'from ccxt.base.types import Entry'
const pyHeader = 'class ImplicitAPI:'
storedPyMethods[exchange] = [ pyImports, '', '', pyHeader ]
}
// -------------------------------------------------------------------------

function createCSharpHeader(exchange, parent){
function createCSharpHeader(exchange: Exchange, parent: string){
const namespace = 'namespace ccxt;'
const header = `public partial class ${exchange.id} : ${parent}\n{\n public ${exchange.id} (object args = null): base(args) {}\n`;
storedCSharpMethods[exchange.id] = [ getPreamble(), namespace, '', header];
}

// -------------------------------------------------------------------------

function createGoHeader(exchange, parent){
function createGoHeader(exchange: Exchange, parent: string){
const namespace = 'package ccxt'
storedGoMethods[exchange.id] = [ getPreamble(), namespace, ''];
}
Expand Down
9 changes: 6 additions & 3 deletions build/goTranspiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,9 @@ class NewTranspiler {
'fetchPortfolioDetails',
'createVault',
] // improve this later
if (methodName.toLowerCase().includes('uta')) {
return false; // skip UTA methods
}
if (isWs) {
if (methodName.indexOf('Snapshot') !== -1 || methodName.indexOf('Subscription') !== -1 || methodName.indexOf('Cache') !== -1) {
return false;
Expand Down Expand Up @@ -1783,7 +1786,7 @@ func (this *${className}) Init(userConfig map[string]interface{}) {
const go = this.transpiler.transpileGoByPath(jsFile);
let content = go.content;
content = this.regexAll (content, [
[/new ccxt.Exchange.+\n.+\n.+/gm, 'ccxt.Exchange{}' ],
[ /Newccxt.Exchange.+\n.+\n.+/gm, 'ccxt.Exchange{}' ],
[ /func Equals\(.+\n.*\n.*\n.*}/gm, '' ], // remove equals
// [/(^\s*Assert\(equals\(ecdsa\([^;]+;)/gm, '/*\n $1\nTODO: add ecdsa\n*/'] // temporarily disable ecdsa tests
]).trim ()
Expand Down Expand Up @@ -1881,7 +1884,8 @@ func (this *${className}) Init(userConfig map[string]interface{}) {
const go = this.transpiler.transpileGoByPath(tsFile);
let content = go.content;
content = this.regexAll (content, [
[/(\w+) := new ccxt\.Exchange\(([\S\s]+?)\)/gm, '$1 := ccxt.NewExchange().(*ccxt.Exchange); $1.DerivedExchange = $1; $1.InitParent($2, map[string]interface{}{}, $1)' ],
[/(\w+) := NewCcxt\.Exchange\(([\S\s]+?)\)/gm, '$1 := ccxt.NewExchange().(*ccxt.Exchange); $1.DerivedExchange = $1; $1.InitParent($2, map[string]interface{}{}, $1)' ],
// [/(\w+) := new ccxt\.Exchange\(([\S\s]+?)\)/gm, '$1 := ccxt.NewExchange().(*ccxt.Exchange); $1.DerivedExchange = $1; $1.InitParent($2, map[string]interface{}{}, $1)' ],
[/exchange interface\{\}, /g,'exchange *ccxt.Exchange, '], // in arguments
[/ interface\{\}(?= \= map\[string\]interface\{\} )/g, ' map[string]interface{}'], // fix incorrect variable type
[ /interface{}\sfunc\sEquals.+\n.*\n.+\n.+/gm, '' ], // remove equals
Expand Down Expand Up @@ -1934,7 +1938,6 @@ func (this *${className}) Init(userConfig map[string]interface{}) {
[/exchange\.(\w+)(,|;|\)|\s)/g, 'exchange.Get$1()$2'],
[/InitOfflineExchange\(exchangeName interface{}\) interface\{\} {/g, 'InitOfflineExchange(exchangeName interface{}) ccxt.ICoreExchange {'],
[/assert\(/g, 'Assert('],
[/GetRootException\(ex\)/g, 'GetRootException(e)'],
[/OnlySpecificTests \[\]interface\{\}/g, 'OnlySpecificTests interface{} '],
[ /interface{}\sfunc\sEquals.+\n.*\n.+\n.+/gm, '' ], // remove equals
])
Expand Down
Loading
Loading