Skip to content

Commit c9f5312

Browse files
committed
Merge branch 'master'
2 parents 9f25a4d + 65a9287 commit c9f5312

1,874 files changed

Lines changed: 775478 additions & 513854 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/cs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,9 @@ jobs:
145145
run: npm run export-exchanges
146146
- name: Live tests
147147
if: env.important_modified == 'true'
148-
run: ./run-tests-simul.sh --csharp
148+
run: |
149+
npm run live-tests -- --csharp || true
150+
npm run live-tests-ws -- --csharp
149151
- name: Live tests (specific)
150152
if: env.important_modified == 'false'
151153
run: ./run-tests-simul.sh --csharp "${{ env.rest_files }}" "${{ env.ws_files }}"

.github/workflows/go-app.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,26 @@ jobs:
6161
# # tsx build/goTranspiler.ts -- $exchange
6262
# # done
6363
run : |
64-
cleaned_rest_files=$(echo ${{ env.rest_files }} | tr -s ' ')
65-
echo "Cleaned files: $cleaned_rest_files"
66-
tsx utils/granular-go-build.ts $cleaned_rest_files
64+
# cleaned_rest_files=$(echo ${{ env.rest_files }} | tr -s ' ')
65+
# cleaned_ws_files=$(echo ${{ env.ws_files }} | tr -s ' ')
66+
# # echo "Cleaned files: $cleaned_rest_files"
67+
# # tsx utils/granular-go-build.ts $cleaned_rest_files
68+
# if [ -n "$cleaned_rest_files" ]; then
69+
# echo "Cleaned files: $cleaned_rest_files"
70+
# tsx utils/granular-go-build.ts $cleaned_rest_files
71+
# else
72+
# echo "No rest files to process; skipping."
73+
# fi
74+
# cleaned_ws_files=$(echo ${{ env.ws_files }} | tr -s ' ')
75+
# if [ -n "$cleaned_ws_files" ]; then
76+
# echo "Cleaned files: $cleaned_ws_files"
77+
# tsx utils/granular-go-build.ts $cleaned_ws_files
78+
# else
79+
# echo "No websocket files to process; skipping."
80+
# fi
81+
read -r -a files <<<"$(printf '%s %s' "${{ env.rest_files }}" "${{ env.ws_files }}" | xargs)"
82+
echo "Files to process: ${files[*]}"
83+
tsx utils/granular-go-build.ts "${files[@]}"
6784
# - name: Install dependencies
6885
# run: cd go && go get ./ccxt && cd ..
6986
- name: Build

CHANGELOG.md

Lines changed: 1330 additions & 11 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 29 additions & 11 deletions
Large diffs are not rendered by default.

build/csharpTranspiler.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,10 @@ class NewTranspiler {
536536
return `return (Int64)res;`;
537537
}
538538

539+
if (unwrappedType === 'double') {
540+
return `return (double)res;`;
541+
}
542+
539543
// handle the typescript type Dict
540544
if (unwrappedType === 'Dict') {
541545
return `return (Dictionary<string, object>)res;`;

build/dummy.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@ try
4646
!
4747
1
4848
trrigger!
49-
go
49+
go!!!

build/goTranspiler.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,12 @@ const imports = [
8383

8484
const VIRTUAL_BASE_METHODS: { [key: string]: boolean} = {
8585
"cancelOrder": true, // true if the method returns a channel (async in JS)
86+
"cancelOrdersWithClientOrderIds": true,
87+
"cancelOrderWithClient": true,
8688
"createExpiredOptionMarket": false,
8789
"createOrder": true,
8890
"editOrder": true,
91+
"editOrderWithClientOrderId": true,
8992
"fetchAccounts": true,
9093
"fetchBalance": true,
9194
"fetchClosedOrders": true,
@@ -108,6 +111,7 @@ const VIRTUAL_BASE_METHODS: { [key: string]: boolean} = {
108111
"fetchTradingFees": true,
109112
"fetchOption": true,
110113
"fetchOrder": true,
114+
"fetchOrderWithClientOrderId": true,
111115
"fetchOrderBook": true,
112116
"fetchOrderBooks": true,
113117
"fetchOrders": true,
@@ -236,9 +240,12 @@ const VIRTUAL_BASE_METHODS: { [key: string]: boolean} = {
236240
}
237241

238242
const INTERFACE_METHODS = [
243+
'cancelOrders',
244+
'cancelOrdersWithClientOrderIds',
239245
'cancelAllOrders',
240246
'cancelAllOrdersAfter',
241247
'cancelOrder',
248+
'cancelOrderWithClientOrderId',
242249
'cancelOrdersForSymbols',
243250
'createConvertTrade',
244251
'createDepositAddress',
@@ -268,6 +275,7 @@ const INTERFACE_METHODS = [
268275
'editLimitOrder',
269276
'editLimitSellOrder',
270277
'editOrder',
278+
'editOrderWithClientOrderId',
271279
'editOrders',
272280
'fetchAccounts',
273281
'fetchAllGreeks',
@@ -329,6 +337,7 @@ const INTERFACE_METHODS = [
329337
'fetchOption',
330338
'fetchOptionChain',
331339
'fetchOrder',
340+
'fetchOrderWithClientOrderId',
332341
'fetchOrderBook',
333342
'fetchOrderBooks',
334343
'fetchOrders',
@@ -1076,6 +1085,9 @@ class NewTranspiler {
10761085
return `(res).(int64)`;
10771086
}
10781087

1088+
if (unwrappedType === 'float64') {
1089+
return `(res).(float64)`;
1090+
}
10791091
if (methodName.startsWith('watchOrderBook')) {
10801092
return `NewOrderBookFromWs(res)`;
10811093
}
@@ -1291,15 +1303,17 @@ class NewTranspiler {
12911303
methodDoc.push(goComments[exchangeName][methodName]);
12921304
}
12931305

1294-
let emtpyObject = `${unwrappedType}{}`;
1306+
let emptyObject = `${unwrappedType}{}`;
12951307
if (unwrappedType.startsWith('[]')) {
1296-
emtpyObject = 'nil';
1308+
emptyObject = 'nil'
12971309
} else if (unwrappedType.includes('int64')) {
1298-
emtpyObject = '-1';
1310+
emptyObject = '-1'
1311+
} else if (unwrappedType.includes('float64')) {
1312+
emptyObject = 'float64(-1)'
12991313
} else if (unwrappedType === 'string') {
1300-
emtpyObject = '""';
1314+
emptyObject = '""'
13011315
} else if (unwrappedType === 'interface{}') {
1302-
emtpyObject = 'nil';
1316+
emptyObject = 'nil';
13031317
}
13041318

13051319
const defaultParams = this.getDefaultParamsWrappers(methodName, methodWrapper.parameters);
@@ -1317,7 +1331,7 @@ class NewTranspiler {
13171331
`${defaultParams}`,
13181332
`${two}res := <- ${accessor}${methodNameCapitalized}(${params})`,
13191333
`${two}if IsError(res) {`,
1320-
`${three}return ${emtpyObject}, CreateReturnError(res)`,
1334+
`${three}return ${emptyObject}, CreateReturnError(res)`,
13211335
`${two}}`,
13221336
`${two}return ${this.createReturnStatement(methodName, unwrappedType)}, nil`,
13231337
// `${two}}()`,

build/transpile.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,16 @@ class Transpiler {
104104
getCommonRegexes (): any[] {
105105

106106
return [
107-
[ /(?<!assert|equals)(\s\(?)(rsa|ecdsa|eddsa|jwt|totp|inflate)\s/g, '$1this.$2' ],
107+
[ /(?<!assert|equals|verify)(\s\(?)(rsa|ecdsa|eddsa|jwt|totp|inflate)\s/g, '$1this.$2' ],
108108
[ /errorHierarchy/g, 'error_hierarchy'],
109109
[ /\.featuresGenerator/g, '.features_generator'],
110110
[ /\.featuresMapper/g, '.features_mapper'],
111111
[ /\.safeValue2/g, '.safe_value_2'],
112112
[ /\.safeInteger2/g, '.safe_integer_2'],
113113
[ /\.safeString2/g, '.safe_string_2'],
114+
[ /safeString \(/g, 'safe_string('],
115+
[ /safeInteger \(/g, 'safe_integer('],
116+
[ /inArray \(/g, 'in_array('],
114117
[ /\.safeFloat2/g, '.safe_float_2'],
115118
[ /\.safeDict2/g, '.safe_dict_2'],
116119
[ /\.safeList2/g, '.safe_list_2'],
@@ -1159,7 +1162,7 @@ class Transpiler {
11591162
const closure = variables && variables.length ? 'use (' + variables.map ((x: any) => '$' + x).join (', ') + ')': '';
11601163
phpBody = ' return Async\\async(function () ' + closure + ' {\n ' + phpBody.replace (/\n/g, '\n ') + '\n }) ();'
11611164
}
1162-
1165+
phpBody = phpBody.replaceAll(/parent::\$market/g, 'parent::market')
11631166
return phpBody
11641167
}
11651168

@@ -2002,6 +2005,9 @@ class Transpiler {
20022005
"hmac = Exchange.hmac",
20032006
"ecdsa = Exchange.ecdsa",
20042007
"eddsa = Exchange.eddsa",
2008+
"safe_string = Exchange.safe_string",
2009+
"safe_integer = Exchange.safe_integer",
2010+
"in_array = Exchange.in_array",
20052011
"jwt = Exchange.jwt",
20062012
"crc32 = Exchange.crc32",
20072013
"rsa = Exchange.rsa",

ci-requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ tox>=4.8.0
1111
mypy==1.6.1
1212
pyopenssl
1313
psutil
14-
protobuf==5.29.5
14+
protobuf==5.29.5
15+
coincurve==20.0.0

cli/ts/helpers.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ function injectMissingUndefined (fn, args) {
9898
}
9999
args = newArgsArray;
100100
}
101-
console.log (args);
102101
return args;
103102
}
104103

0 commit comments

Comments
 (0)