@tatumio/celo 2.0.1-alpha.279 → 2.0.1-alpha.284
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -7
- package/src/lib/celo.sdk.d.ts +13 -0
- package/src/lib/celo.sdk.js +1 -1
- package/src/lib/celo.sdk.js.map +1 -1
- package/src/lib/services/celo.tx.d.ts +7 -4
- package/src/lib/services/celo.tx.js.map +1 -1
- package/src/lib/transactions/smartContract/index.d.ts +13 -13
- package/src/lib/transactions/smartContract/index.js +17 -31
- package/src/lib/transactions/smartContract/index.js.map +1 -1
- package/src/lib/utils/celo.utils.d.ts +2 -3
- package/src/lib/utils/celo.utils.js +6 -3
- package/src/lib/utils/celo.utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tatumio/celo",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.284",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@tatumio/shared-testing-common": "2.0.1-alpha.
|
|
9
|
-
"@tatumio/api-client": "2.0.1-alpha.
|
|
8
|
+
"@tatumio/shared-testing-common": "2.0.1-alpha.284",
|
|
9
|
+
"@tatumio/api-client": "2.0.1-alpha.284",
|
|
10
10
|
"axios": "^0.26.0",
|
|
11
11
|
"form-data": "^4.0.0",
|
|
12
|
-
"@tatumio/shared-
|
|
13
|
-
"@tatumio/shared-
|
|
12
|
+
"@tatumio/shared-testing-evm-based": "2.0.1-alpha.284",
|
|
13
|
+
"@tatumio/shared-blockchain-evm-based": "2.0.1-alpha.284",
|
|
14
|
+
"@tatumio/shared-core": "2.0.1-alpha.284",
|
|
15
|
+
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.284",
|
|
16
|
+
"@tatumio/shared-abstract-sdk": "2.0.1-alpha.284",
|
|
14
17
|
"bignumber.js": "^9.0.2",
|
|
15
|
-
"@tatumio/shared-blockchain-evm-based": "2.0.1-alpha.279",
|
|
16
|
-
"@tatumio/shared-blockchain-abstract": "2.0.1-alpha.279",
|
|
17
18
|
"ethereumjs-wallet": "^1.0.2",
|
|
18
19
|
"bip39": "^3.0.2",
|
|
19
20
|
"web3": "^1.7.4",
|
package/src/lib/celo.sdk.d.ts
CHANGED
|
@@ -117,6 +117,19 @@ export declare const TatumCeloSDK: (args: SDKArguments) => {
|
|
|
117
117
|
deployMultiTokenTransaction: (body: import("..").ChainDeployMultiTokenCelo, provider?: string, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHashKMS>;
|
|
118
118
|
};
|
|
119
119
|
};
|
|
120
|
+
smartContract: {
|
|
121
|
+
prepare: {
|
|
122
|
+
smartContractWriteMethodInvocationTransaction: (body: import("..").SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<string>;
|
|
123
|
+
};
|
|
124
|
+
send: {
|
|
125
|
+
smartContractReadMethodInvocationTransaction: (body: import("@tatumio/api-client").CallReadSmartContractMethod, provider?: string) => Promise<{
|
|
126
|
+
data: any;
|
|
127
|
+
}>;
|
|
128
|
+
smartContractMethodInvocationTransaction: (body: import("..").SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHashKMS | {
|
|
129
|
+
data: any;
|
|
130
|
+
}>;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
120
133
|
custodial: {
|
|
121
134
|
prepare: {
|
|
122
135
|
transferFromCustodialWallet: (body: import("../../../../../dist/packages/shared/blockchain/abstract/src").ChainTransferCustodialWallet, testnet?: boolean, provider?: string) => Promise<string>;
|
package/src/lib/celo.sdk.js
CHANGED
|
@@ -15,7 +15,7 @@ const TatumCeloSDK = (args) => {
|
|
|
15
15
|
const api = api_client_1.CeloService;
|
|
16
16
|
const txService = (0, celo_tx_1.celoTxService)({ blockchain, web3 });
|
|
17
17
|
const _a = (0, shared_blockchain_evm_based_1.evmBasedSdk)(Object.assign(Object.assign({}, args), { blockchain, web3 })), { nft } = _a, evmSdk = (0, tslib_1.__rest)(_a, ["nft"]);
|
|
18
|
-
return Object.assign(Object.assign({}, evmSdk), { api, kms: (0, celo_kms_1.celoKmsService)({ blockchain, web3 }), transaction: txService.native, erc20: Object.assign(Object.assign({}, txService.erc20), { getErc20TransactionByAddress: api_client_1.FungibleTokensErc20OrCompatibleService.erc20GetTransactionByAddress, getErc20AccountBalance: api_client_1.FungibleTokensErc20OrCompatibleService.erc20GetBalance }), nft: Object.assign(Object.assign({}, txService.erc721), nft), multiToken: txService.multiToken, custodial: txService.custodial, marketplace: {
|
|
18
|
+
return Object.assign(Object.assign({}, evmSdk), { api, kms: (0, celo_kms_1.celoKmsService)({ blockchain, web3 }), transaction: txService.native, erc20: Object.assign(Object.assign({}, txService.erc20), { getErc20TransactionByAddress: api_client_1.FungibleTokensErc20OrCompatibleService.erc20GetTransactionByAddress, getErc20AccountBalance: api_client_1.FungibleTokensErc20OrCompatibleService.erc20GetBalance }), nft: Object.assign(Object.assign({}, txService.erc721), nft), multiToken: txService.multiToken, smartContract: txService.smartContract, custodial: txService.custodial, marketplace: {
|
|
19
19
|
auction: (0, celo_auction_1.celoAuctionService)({ blockchain, web3 }),
|
|
20
20
|
}, httpDriver: (request) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
21
21
|
return api.celoWeb3Driver(args.apiKey, Object.assign(Object.assign({}, request), { jsonrpc: '2.0' }));
|
package/src/lib/celo.sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celo.sdk.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/celo/src/lib/celo.sdk.ts"],"names":[],"mappings":";;;;AAAA,sDAA4E;AAE5E,oDAAyF;AACzF,oDAA+C;AAC/C,sFAAkE;AAClE,kDAAoD;AACpD,gDAAkD;AAClD,0DAA4D;AAE5D,MAAM,UAAU,GAAG,wBAAU,CAAC,IAAI,CAAA;AAE3B,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,wBAAW,CAAA;IACvB,MAAM,SAAS,GAAG,IAAA,uBAAa,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,KAAqB,IAAA,yCAAW,kCAAM,IAAI,KAAE,UAAU,EAAE,IAAI,IAAG,EAA/D,EAAE,GAAG,OAA0D,EAArD,MAAM,2BAAhB,OAAkB,CAA6C,CAAA;IAErE,uCACK,MAAM,KACT,GAAG,EACH,GAAG,EAAE,IAAA,yBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,MAAM,EAC7B,KAAK,kCACA,SAAS,CAAC,KAAK,KAClB,4BAA4B,EAAE,mDAAsC,CAAC,4BAA4B,EACjG,sBAAsB,EAAE,mDAAsC,CAAC,eAAe,KAEhF,GAAG,kCACE,SAAS,CAAC,MAAM,GAChB,GAAG,GAER,UAAU,EAAE,SAAS,CAAC,UAAU,EAChC,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,WAAW,EAAE;YACX,OAAO,EAAE,IAAA,iCAAkB,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SAClD,EACD,UAAU,EAAE,CAAO,OAAoB,EAAyB,EAAE;YAChE,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,kCAAO,OAAO,KAAE,OAAO,EAAE,KAAK,IAAG,CAAA;QACxE,CAAC,CAAA,EACD,UAAU,EAAE;YACV,SAAS,EAAE,wBAAW,CAAC,aAAa;YACpC,oBAAoB,EAAE,wBAAW,CAAC,uBAAuB;YACzD,eAAe,EAAE,wBAAW,CAAC,mBAAmB;YAChD,QAAQ,EAAE,wBAAW,CAAC,YAAY;YAClC,2BAA2B,EAAE,wBAAW,CAAC,cAAc;YACvD,GAAG,EAAE,wBAAW,CAAC,kBAAkB;YACnC,sBAAsB,EAAE,wBAAW,CAAC,2BAA2B;SAChE,IACF;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"celo.sdk.js","sourceRoot":"","sources":["../../../../../../packages/blockchain/celo/src/lib/celo.sdk.ts"],"names":[],"mappings":";;;;AAAA,sDAA4E;AAE5E,oDAAyF;AACzF,oDAA+C;AAC/C,sFAAkE;AAClE,kDAAoD;AACpD,gDAAkD;AAClD,0DAA4D;AAE5D,MAAM,UAAU,GAAG,wBAAU,CAAC,IAAI,CAAA;AAE3B,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,wBAAW,CAAA;IACvB,MAAM,SAAS,GAAG,IAAA,uBAAa,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,KAAqB,IAAA,yCAAW,kCAAM,IAAI,KAAE,UAAU,EAAE,IAAI,IAAG,EAA/D,EAAE,GAAG,OAA0D,EAArD,MAAM,2BAAhB,OAAkB,CAA6C,CAAA;IAErE,uCACK,MAAM,KACT,GAAG,EACH,GAAG,EAAE,IAAA,yBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACzC,WAAW,EAAE,SAAS,CAAC,MAAM,EAC7B,KAAK,kCACA,SAAS,CAAC,KAAK,KAClB,4BAA4B,EAAE,mDAAsC,CAAC,4BAA4B,EACjG,sBAAsB,EAAE,mDAAsC,CAAC,eAAe,KAEhF,GAAG,kCACE,SAAS,CAAC,MAAM,GAChB,GAAG,GAER,UAAU,EAAE,SAAS,CAAC,UAAU,EAChC,aAAa,EAAE,SAAS,CAAC,aAAa,EACtC,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,WAAW,EAAE;YACX,OAAO,EAAE,IAAA,iCAAkB,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SAClD,EACD,UAAU,EAAE,CAAO,OAAoB,EAAyB,EAAE;YAChE,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,kCAAO,OAAO,KAAE,OAAO,EAAE,KAAK,IAAG,CAAA;QACxE,CAAC,CAAA,EACD,UAAU,EAAE;YACV,SAAS,EAAE,wBAAW,CAAC,aAAa;YACpC,oBAAoB,EAAE,wBAAW,CAAC,uBAAuB;YACzD,eAAe,EAAE,wBAAW,CAAC,mBAAmB;YAChD,QAAQ,EAAE,wBAAW,CAAC,YAAY;YAClC,2BAA2B,EAAE,wBAAW,CAAC,cAAc;YACvD,GAAG,EAAE,wBAAW,CAAC,kBAAkB;YACnC,sBAAsB,EAAE,wBAAW,CAAC,2BAA2B;SAChE,IACF;AACH,CAAC,CAAA;AAvCY,QAAA,YAAY,gBAuCxB"}
|
|
@@ -106,12 +106,15 @@ export declare const celoTxService: (args: {
|
|
|
106
106
|
};
|
|
107
107
|
smartContract: {
|
|
108
108
|
prepare: {
|
|
109
|
-
|
|
110
|
-
smartContractReadMethodInvocation: (body: import("../..").SmartContractWriteMethodInvocationCelo, provider?: string) => Promise<string>;
|
|
109
|
+
smartContractWriteMethodInvocationTransaction: (body: import("../..").SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<string>;
|
|
111
110
|
};
|
|
112
111
|
send: {
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
smartContractReadMethodInvocationTransaction: (body: import("@tatumio/api-client").CallReadSmartContractMethod, provider?: string) => Promise<{
|
|
113
|
+
data: any;
|
|
114
|
+
}>;
|
|
115
|
+
smartContractMethodInvocationTransaction: (body: import("../..").SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHashKMS | {
|
|
116
|
+
data: any;
|
|
117
|
+
}>;
|
|
115
118
|
};
|
|
116
119
|
};
|
|
117
120
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celo.tx.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/celo/src/lib/services/celo.tx.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,sFAAmG;AACnG,kDAAkF;AAE3E,MAAM,aAAa,GAAG,CAAC,IAA4D,EAAE,EAAE;IAC5F,MAAM,SAAS,GAAG,IAAA,qBAAM,kCACnB,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CAAA;
|
|
1
|
+
{"version":3,"file":"celo.tx.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/celo/src/lib/services/celo.tx.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,sFAAmG;AACnG,kDAAkF;AAE3E,MAAM,aAAa,GAAG,CAAC,IAA4D,EAAE,EAAE;IAC5F,MAAM,SAAS,GAAG,IAAA,qBAAM,kCACnB,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CAAA;IACF,OAAO;QACL,MAAM,kCACD,SAAS,KACZ,OAAO,oBACF,SAAS,CAAC,OAAO,IAEvB;QACD,MAAM,oBACD,IAAA,qBAAM,kCACJ,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CACH;QACD,UAAU,oBACL,IAAA,yBAAU,kCACR,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CACH;QACD,SAAS,oBACJ,IAAA,uCAAiB,kCACf,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CACH;QACD,KAAK,oBACA,IAAA,oBAAK,kCACH,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CACH;QACD,aAAa,oBACR,IAAA,4BAAa,kCACX,IAAI,KACP,iBAAiB,EAAE,wBAAW,CAAC,aAAa,IAC5C,CACH;KACF,CAAA;AACH,CAAC,CAAA;AA3CY,QAAA,aAAa,iBA2CzB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { CallReadSmartContractMethod } from '@tatumio/api-client';
|
|
1
2
|
import { BroadcastFunction } from '@tatumio/shared-blockchain-abstract';
|
|
3
|
+
import { EvmBasedWeb3 } from '@tatumio/shared-blockchain-evm-based';
|
|
2
4
|
import { SmartContractWriteMethodInvocationCelo } from '../../utils/celo.utils';
|
|
3
5
|
export declare const smartContract: (args: {
|
|
6
|
+
web3: EvmBasedWeb3;
|
|
4
7
|
broadcastFunction: BroadcastFunction;
|
|
5
8
|
}) => {
|
|
6
9
|
prepare: {
|
|
@@ -8,23 +11,18 @@ export declare const smartContract: (args: {
|
|
|
8
11
|
* Prepare a smart contract write method invocation transaction with the private key locally. Nothing is broadcasted to the blockchain.
|
|
9
12
|
* @returns raw transaction data in hex, to be broadcasted to blockchain.
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Prepare a signed Celo smart contract read method invocation transaction with the private key locally. Nothing is broadcasted to the blockchain.
|
|
14
|
-
* @returns raw transaction data in hex, to be broadcasted to blockchain.
|
|
15
|
-
*/
|
|
16
|
-
smartContractReadMethodInvocation: (body: SmartContractWriteMethodInvocationCelo, provider?: string) => Promise<string>;
|
|
14
|
+
smartContractWriteMethodInvocationTransaction: (body: SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<string>;
|
|
17
15
|
};
|
|
18
16
|
send: {
|
|
19
17
|
/**
|
|
20
|
-
* Send
|
|
21
|
-
*
|
|
22
|
-
* @param testnet
|
|
18
|
+
* Send invoke smart contract transaction to the blockchain.
|
|
19
|
+
* Invoked method only reads from blockchain the data and returns them back.
|
|
23
20
|
* @param body content of the transaction to broadcast
|
|
24
|
-
* @param provider
|
|
25
|
-
* @returns transaction id of the transaction in the blockchain
|
|
21
|
+
* @param provider url of the Server to connect to. If not set, default public server will be used.
|
|
26
22
|
*/
|
|
27
|
-
|
|
23
|
+
smartContractReadMethodInvocationTransaction: (body: CallReadSmartContractMethod, provider?: string) => Promise<{
|
|
24
|
+
data: any;
|
|
25
|
+
}>;
|
|
28
26
|
/**
|
|
29
27
|
* Send Celo smart contract method invocation transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
|
30
28
|
* This operation is irreversible.
|
|
@@ -33,6 +31,8 @@ export declare const smartContract: (args: {
|
|
|
33
31
|
* @param provider
|
|
34
32
|
* @returns transaction id of the transaction in the blockchain
|
|
35
33
|
*/
|
|
36
|
-
|
|
34
|
+
smartContractMethodInvocationTransaction: (body: SmartContractWriteMethodInvocationCelo, provider?: string, testnet?: boolean) => Promise<import("@tatumio/api-client").TransactionHashKMS | {
|
|
35
|
+
data: any;
|
|
36
|
+
}>;
|
|
37
37
|
};
|
|
38
38
|
};
|
|
@@ -9,14 +9,13 @@ const bignumber_js_1 = (0, tslib_1.__importDefault)(require("bignumber.js"));
|
|
|
9
9
|
const web3_1 = (0, tslib_1.__importDefault)(require("web3"));
|
|
10
10
|
const web3_utils_1 = require("web3-utils");
|
|
11
11
|
const celo_utils_1 = require("../../utils/celo.utils");
|
|
12
|
-
const
|
|
12
|
+
const smartContractWriteMethodInvocation = (body, provider, testnet) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
13
13
|
var _a;
|
|
14
14
|
const { fromPrivateKey, feeCurrency, fee, params, methodName, methodABI, contractAddress, nonce, signatureId, amount, } = body;
|
|
15
15
|
const celoProvider = celo_utils_1.celoUtils.getProvider(provider);
|
|
16
16
|
const network = yield celoProvider.ready;
|
|
17
17
|
const feeCurrencyContractAddress = celo_utils_1.celoUtils.getFeeCurrency(feeCurrency, testnet);
|
|
18
|
-
const
|
|
19
|
-
const contract = new new web3_1.default(url).eth.Contract([methodABI], contractAddress.trim());
|
|
18
|
+
const contract = new new web3_1.default(celo_utils_1.celoUtils.getProviderUrl(provider)).eth.Contract([methodABI], contractAddress.trim());
|
|
20
19
|
const transaction = {
|
|
21
20
|
chainId: network.chainId,
|
|
22
21
|
feeCurrency: feeCurrencyContractAddress,
|
|
@@ -41,12 +40,6 @@ const prepareSmartContractWriteMethodInvocation = (body, provider, testnet) => (
|
|
|
41
40
|
: gasPrice.toHexString();
|
|
42
41
|
return wallet.signTransaction(transaction);
|
|
43
42
|
});
|
|
44
|
-
const prepareSmartContractReadMethodInvocation = (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
45
|
-
const { params, methodName, methodABI, contractAddress } = body;
|
|
46
|
-
const url = provider !== null && provider !== void 0 ? provider : api_client_1.TATUM_API_CONSTANTS.URL;
|
|
47
|
-
const contract = new new web3_1.default(url).eth.Contract([methodABI], contractAddress.trim());
|
|
48
|
-
return contract.methods[methodName](...params).call();
|
|
49
|
-
});
|
|
50
43
|
const smartContract = (args) => {
|
|
51
44
|
return {
|
|
52
45
|
prepare: {
|
|
@@ -54,28 +47,16 @@ const smartContract = (args) => {
|
|
|
54
47
|
* Prepare a smart contract write method invocation transaction with the private key locally. Nothing is broadcasted to the blockchain.
|
|
55
48
|
* @returns raw transaction data in hex, to be broadcasted to blockchain.
|
|
56
49
|
*/
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Prepare a signed Celo smart contract read method invocation transaction with the private key locally. Nothing is broadcasted to the blockchain.
|
|
60
|
-
* @returns raw transaction data in hex, to be broadcasted to blockchain.
|
|
61
|
-
*/
|
|
62
|
-
smartContractReadMethodInvocation: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return prepareSmartContractReadMethodInvocation(body, provider); }),
|
|
50
|
+
smartContractWriteMethodInvocationTransaction: (body, provider, testnet) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return smartContractWriteMethodInvocation(body, provider, testnet); }),
|
|
63
51
|
},
|
|
64
52
|
send: {
|
|
65
53
|
/**
|
|
66
|
-
* Send
|
|
67
|
-
*
|
|
68
|
-
* @param testnet
|
|
54
|
+
* Send invoke smart contract transaction to the blockchain.
|
|
55
|
+
* Invoked method only reads from blockchain the data and returns them back.
|
|
69
56
|
* @param body content of the transaction to broadcast
|
|
70
|
-
* @param provider
|
|
71
|
-
* @returns transaction id of the transaction in the blockchain
|
|
57
|
+
* @param provider url of the Server to connect to. If not set, default public server will be used.
|
|
72
58
|
*/
|
|
73
|
-
|
|
74
|
-
return yield args.broadcastFunction({
|
|
75
|
-
txData: yield prepareSmartContractWriteMethodInvocation(body, provider, testnet),
|
|
76
|
-
signatureId: body.signatureId,
|
|
77
|
-
});
|
|
78
|
-
}),
|
|
59
|
+
smartContractReadMethodInvocationTransaction: (body, provider) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () { return (0, shared_blockchain_evm_based_1.smartContractReadMethodInvocation)(body, args.web3, provider); }),
|
|
79
60
|
/**
|
|
80
61
|
* Send Celo smart contract method invocation transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
|
|
81
62
|
* This operation is irreversible.
|
|
@@ -84,11 +65,16 @@ const smartContract = (args) => {
|
|
|
84
65
|
* @param provider
|
|
85
66
|
* @returns transaction id of the transaction in the blockchain
|
|
86
67
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
68
|
+
smartContractMethodInvocationTransaction: (body, provider, testnet) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
69
|
+
if (body.methodABI.stateMutability === 'view') {
|
|
70
|
+
return (0, shared_blockchain_evm_based_1.smartContractReadMethodInvocation)(body, args.web3, provider);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return args.broadcastFunction({
|
|
74
|
+
txData: yield smartContractWriteMethodInvocation(body, provider, testnet),
|
|
75
|
+
signatureId: body.signatureId,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
92
78
|
}),
|
|
93
79
|
},
|
|
94
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/blockchain/celo/src/lib/transactions/smartContract/index.ts"],"names":[],"mappings":";;;;AAAA,yEAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/blockchain/celo/src/lib/transactions/smartContract/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { CallCeloSmartContractMethod, ChainBurnCeloErc20, ChainDeployCeloErc20, ChainMintCeloErc20, ChainTransferCeloErc20Token, ChainTransferEthErc20, CreateRecordCelo } from '@tatumio/api-client';
|
|
1
|
+
import { BurnMultiTokenBatchCelo, BurnMultiTokenCelo, BurnNftCelo, CallCeloSmartContractMethod, ChainBurnCeloErc20, ChainDeployCeloErc20, ChainMintCeloErc20, ChainTransferCeloErc20Token, ChainTransferEthErc20, CreateRecordCelo, DeployMultiTokenCelo, DeployNftCelo, MintMultipleNftCelo, MintMultiTokenBatchCelo, MintMultiTokenCelo, MintNftCelo, TransferCeloBlockchain, TransferMultiTokenBatchCelo, TransferMultiTokenCelo, TransferNftCelo, UpdateCashbackValueForAuthorNftCelo } from '@tatumio/api-client';
|
|
2
2
|
import { FromPrivateKeyOrSignatureId } from '@tatumio/shared-blockchain-abstract';
|
|
3
|
-
import { BurnMultiTokenBatchCelo, BurnMultiTokenCelo, BurnNftCelo, DeployMultiTokenCelo, DeployNftCelo, GenerateCustodialWalletCelo, GenerateCustodialWalletCeloKMS, MintMultipleNftCelo, MintMultiTokenBatchCelo, MintMultiTokenCelo, MintNftCelo, TransferCeloBlockchain, TransferMultiTokenBatchCelo, TransferMultiTokenCelo, TransferNftCelo, UpdateCashbackValueForAuthorNftCelo } from '@tatumio/api-client';
|
|
4
3
|
import { BigNumber as BN } from '@ethersproject/bignumber';
|
|
5
4
|
import { CeloProvider, CeloWallet } from '@celo-tools/celo-ethers-wrapper';
|
|
6
5
|
import { WithoutChain } from '@tatumio/shared-abstract-sdk';
|
|
@@ -45,7 +44,6 @@ export declare type ChainBurnErc20Celo = WithoutChain<FromPrivateKeyOrSignatureI
|
|
|
45
44
|
export declare type ChainStoreDataCelo = WithoutChain<FromPrivateKeyOrSignatureId<CreateRecordCelo>> & Pick<ChainTransferEthErc20, 'fee'>;
|
|
46
45
|
export declare type SmartContractWriteMethodInvocationCelo = FromPrivateKeyOrSignatureId<CallCeloSmartContractMethod>;
|
|
47
46
|
export declare type SmartContractReadMethodInvocationCelo = FromPrivateKeyOrSignatureId<CallCeloSmartContractMethod>;
|
|
48
|
-
export declare type ChainGenerateCustodialAddressCelo = GenerateCustodialWalletCelo | GenerateCustodialWalletCeloKMS;
|
|
49
47
|
export declare type CeloFeeCurrency = 'CELO' | 'CUSD' | 'CEUR';
|
|
50
48
|
export declare const CELO_CONSTANTS: {
|
|
51
49
|
CEUR_ADDRESS_MAINNET: string;
|
|
@@ -56,6 +54,7 @@ export declare const CELO_CONSTANTS: {
|
|
|
56
54
|
export declare const celoUtils: {
|
|
57
55
|
prepareSignedTransactionAbstraction: (wallet: CeloWallet, transaction: CeloTransactionConfig) => Promise<string>;
|
|
58
56
|
getProvider: (provider?: string) => CeloProvider;
|
|
57
|
+
getProviderUrl: (provider?: string) => string;
|
|
59
58
|
obtainWalletInformation: (wallet: CeloWallet, feeCurrencyContractAddress?: string) => Promise<{
|
|
60
59
|
txCount: number;
|
|
61
60
|
gasPrice: BN;
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.celoUtils = exports.CELO_CONSTANTS = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const api_client_1 = require("@tatumio/api-client");
|
|
6
|
-
const api_client_2 = require("@tatumio/api-client");
|
|
7
6
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
8
7
|
const celo_ethers_wrapper_1 = require("@celo-tools/celo-ethers-wrapper");
|
|
8
|
+
const shared_core_1 = require("@tatumio/shared-core");
|
|
9
9
|
exports.CELO_CONSTANTS = {
|
|
10
10
|
CEUR_ADDRESS_MAINNET: '0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73',
|
|
11
11
|
CEUR_ADDRESS_TESTNET: '0x10c892a6ec43a53e45d0b916b4b7d383b1b78c0f',
|
|
@@ -19,8 +19,11 @@ exports.celoUtils = {
|
|
|
19
19
|
.toHexString();
|
|
20
20
|
return wallet.signTransaction(transaction);
|
|
21
21
|
}),
|
|
22
|
-
getProvider: (provider) => new celo_ethers_wrapper_1.CeloProvider(provider
|
|
23
|
-
|
|
22
|
+
getProvider: (provider) => new celo_ethers_wrapper_1.CeloProvider(exports.celoUtils.getProviderUrl(provider)),
|
|
23
|
+
getProviderUrl: (provider) => {
|
|
24
|
+
return (provider ||
|
|
25
|
+
shared_core_1.httpHelper.web3Endpoint(shared_core_1.Blockchain.CELO, process.env['TATUM_API_URL'] || api_client_1.TATUM_API_CONSTANTS.URL, api_client_1.TATUM_API_CONSTANTS.API_KEY));
|
|
26
|
+
},
|
|
24
27
|
obtainWalletInformation: (wallet, feeCurrencyContractAddress) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
|
|
25
28
|
const [txCount, gasPrice, from] = yield Promise.all([
|
|
26
29
|
wallet.getTransactionCount(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celo.utils.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/celo/src/lib/utils/celo.utils.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"celo.utils.js","sourceRoot":"","sources":["../../../../../../../packages/blockchain/celo/src/lib/utils/celo.utils.ts"],"names":[],"mappings":";;;;AAAA,oDAwB4B;AAE5B,wDAA0D;AAC1D,yEAA0E;AAE1E,sDAA6D;AAkFhD,QAAA,cAAc,GAAG;IAC5B,oBAAoB,EAAE,4CAA4C;IAClE,oBAAoB,EAAE,4CAA4C;IAClE,oBAAoB,EAAE,4CAA4C;IAClE,oBAAoB,EAAE,4CAA4C;CACnE,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,mCAAmC,EAAE,CAAO,MAAkB,EAAE,WAAkC,EAAE,EAAE;QACpG,WAAW,CAAC,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;aAC3D,GAAG,CAAC,WAAW,CAAC,WAAW,KAAK,qBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3D,WAAW,EAAE,CAAA;QAEhB,OAAO,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC,CAAA;IAED,WAAW,EAAE,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,kCAAY,CAAC,iBAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAExF,cAAc,EAAE,CAAC,QAAiB,EAAE,EAAE;QACpC,OAAO,CACL,QAAQ;YACR,wBAAU,CAAC,YAAY,CACrB,wBAAU,CAAC,IAAI,EACf,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,gCAAmB,CAAC,GAAG,EACvD,gCAAmB,CAAC,OAAO,CAC5B,CACF,CAAA;IACH,CAAC;IAED,uBAAuB,EAAE,CAAO,MAAkB,EAAE,0BAAmC,EAAE,EAAE;QACzF,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClD,MAAM,CAAC,mBAAmB,EAAE;YAC5B,MAAM,CAAC,WAAW,CAAC,0BAA0B,CAAC;YAC9C,MAAM,CAAC,UAAU,EAAE;SACpB,CAAC,CAAA;QAEF,OAAO;YACL,OAAO;YACP,QAAQ,EACN,CAAC,sBAAc,CAAC,oBAAoB,EAAE,sBAAc,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CACjF,0BAA0B,IAAI,EAAE,CACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC3B,CAAC,CAAC,qBAAE,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrB,CAAC,CAAC,QAAQ;YACd,IAAI;SACL,CAAA;IACH,CAAC,CAAA;IACD,iBAAiB,EAAE,CAAC,WAAmB,EAAkC,EAAE;QACzE,OAAO,CAAC,qBAAQ,CAAC,IAAI,EAAE,qBAAQ,CAAC,IAAI,EAAE,qBAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACrG,CAAC;IACD,cAAc,EAAE,CAAC,WAA6B,EAAE,OAAiB,EAAE,EAAE;QACnE,QAAQ,WAAW,EAAE;YACnB,KAAK,qBAAQ,CAAC,IAAI;gBAChB,OAAO,OAAO,CAAC,CAAC,CAAC,sBAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAc,CAAC,oBAAoB,CAAA;YAC5F,KAAK,qBAAQ,CAAC,IAAI;gBAChB,OAAO,OAAO,CAAC,CAAC,CAAC,sBAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAc,CAAC,oBAAoB,CAAA;YAC5F;gBACE,OAAO,SAAS,CAAA;SACnB;IACH,CAAC;CACF,CAAA"}
|