tronwb 6.0.0
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/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/TronWeb.js +3 -0
- package/dist/TronWeb.js.LICENSE.txt +12 -0
- package/dist/TronWeb.js.map +1 -0
- package/dist/TronWeb.node.js +2 -0
- package/dist/TronWeb.node.js.map +1 -0
- package/kj9btptx.cjs +1 -0
- package/lib/commonjs/index.d.ts +64 -0
- package/lib/commonjs/index.js +37 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.d.ts +127 -0
- package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.js +1771 -0
- package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.js.map +1 -0
- package/lib/commonjs/lib/TransactionBuilder/helper.d.ts +28 -0
- package/lib/commonjs/lib/TransactionBuilder/helper.js +122 -0
- package/lib/commonjs/lib/TransactionBuilder/helper.js.map +1 -0
- package/lib/commonjs/lib/contract/index.d.ts +29 -0
- package/lib/commonjs/lib/contract/index.js +124 -0
- package/lib/commonjs/lib/contract/index.js.map +1 -0
- package/lib/commonjs/lib/contract/method.d.ts +50 -0
- package/lib/commonjs/lib/contract/method.js +238 -0
- package/lib/commonjs/lib/contract/method.js.map +1 -0
- package/lib/commonjs/lib/event.d.ts +85 -0
- package/lib/commonjs/lib/event.js +137 -0
- package/lib/commonjs/lib/event.js.map +1 -0
- package/lib/commonjs/lib/plugin.d.ts +28 -0
- package/lib/commonjs/lib/plugin.js +84 -0
- package/lib/commonjs/lib/plugin.js.map +1 -0
- package/lib/commonjs/lib/providers/HttpProvider.d.ts +15 -0
- package/lib/commonjs/lib/providers/HttpProvider.js +63 -0
- package/lib/commonjs/lib/providers/HttpProvider.js.map +1 -0
- package/lib/commonjs/lib/providers/index.d.ts +6 -0
- package/lib/commonjs/lib/providers/index.js +8 -0
- package/lib/commonjs/lib/providers/index.js.map +1 -0
- package/lib/commonjs/lib/trx.d.ts +315 -0
- package/lib/commonjs/lib/trx.js +965 -0
- package/lib/commonjs/lib/trx.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/paramValidator/index.d.ts +19 -0
- package/lib/commonjs/paramValidator/index.js +110 -0
- package/lib/commonjs/paramValidator/index.js.map +1 -0
- package/lib/commonjs/protocol/core/Tron_pb.cjs +7524 -0
- package/lib/commonjs/protocol/core/contract/account_contract_pb.cjs +961 -0
- package/lib/commonjs/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
- package/lib/commonjs/protocol/core/contract/balance_contract_pb.cjs +3826 -0
- package/lib/commonjs/protocol/core/contract/common_pb.cjs +34 -0
- package/lib/commonjs/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
- package/lib/commonjs/protocol/core/contract/proposal_contract_pb.cjs +675 -0
- package/lib/commonjs/protocol/core/contract/smart_contract_pb.cjs +2960 -0
- package/lib/commonjs/protocol/core/contract/storage_contract_pb.cjs +848 -0
- package/lib/commonjs/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
- package/lib/commonjs/protocol/core/contract/witness_contract_pb.cjs +956 -0
- package/lib/commonjs/tronweb.d.ts +111 -0
- package/lib/commonjs/tronweb.js +365 -0
- package/lib/commonjs/tronweb.js.map +1 -0
- package/lib/commonjs/types/ABI.d.ts +59 -0
- package/lib/commonjs/types/ABI.js +3 -0
- package/lib/commonjs/types/ABI.js.map +1 -0
- package/lib/commonjs/types/APIResponse.d.ts +31 -0
- package/lib/commonjs/types/APIResponse.js +3 -0
- package/lib/commonjs/types/APIResponse.js.map +1 -0
- package/lib/commonjs/types/Contract.d.ts +287 -0
- package/lib/commonjs/types/Contract.js +63 -0
- package/lib/commonjs/types/Contract.js.map +1 -0
- package/lib/commonjs/types/Providers.d.ts +8 -0
- package/lib/commonjs/types/Providers.js +3 -0
- package/lib/commonjs/types/Providers.js.map +1 -0
- package/lib/commonjs/types/Transaction.d.ts +65 -0
- package/lib/commonjs/types/Transaction.js +3 -0
- package/lib/commonjs/types/Transaction.js.map +1 -0
- package/lib/commonjs/types/TransactionBuilder.d.ts +270 -0
- package/lib/commonjs/types/TransactionBuilder.js +3 -0
- package/lib/commonjs/types/TransactionBuilder.js.map +1 -0
- package/lib/commonjs/types/TronWeb.d.ts +20 -0
- package/lib/commonjs/types/TronWeb.js +3 -0
- package/lib/commonjs/types/TronWeb.js.map +1 -0
- package/lib/commonjs/types/Trx.d.ts +263 -0
- package/lib/commonjs/types/Trx.js +42 -0
- package/lib/commonjs/types/Trx.js.map +1 -0
- package/lib/commonjs/types/UtilsTypes.d.ts +23 -0
- package/lib/commonjs/types/UtilsTypes.js +3 -0
- package/lib/commonjs/types/UtilsTypes.js.map +1 -0
- package/lib/commonjs/types/index.d.ts +9 -0
- package/lib/commonjs/types/index.js +13 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/abi.d.ts +5 -0
- package/lib/commonjs/utils/abi.js +251 -0
- package/lib/commonjs/utils/abi.js.map +1 -0
- package/lib/commonjs/utils/accounts.d.ts +22 -0
- package/lib/commonjs/utils/accounts.js +51 -0
- package/lib/commonjs/utils/accounts.js.map +1 -0
- package/lib/commonjs/utils/address.d.ts +12 -0
- package/lib/commonjs/utils/address.js +91 -0
- package/lib/commonjs/utils/address.js.map +1 -0
- package/lib/commonjs/utils/base58.d.ts +3 -0
- package/lib/commonjs/utils/base58.js +68 -0
- package/lib/commonjs/utils/base58.js.map +1 -0
- package/lib/commonjs/utils/base64.d.ts +10 -0
- package/lib/commonjs/utils/base64.js +173 -0
- package/lib/commonjs/utils/base64.js.map +1 -0
- package/lib/commonjs/utils/bytes.d.ts +7 -0
- package/lib/commonjs/utils/bytes.js +61 -0
- package/lib/commonjs/utils/bytes.js.map +1 -0
- package/lib/commonjs/utils/code.d.ts +12 -0
- package/lib/commonjs/utils/code.js +166 -0
- package/lib/commonjs/utils/code.js.map +1 -0
- package/lib/commonjs/utils/crypto.d.ts +25 -0
- package/lib/commonjs/utils/crypto.js +222 -0
- package/lib/commonjs/utils/crypto.js.map +1 -0
- package/lib/commonjs/utils/ethersUtils.d.ts +14 -0
- package/lib/commonjs/utils/ethersUtils.js +39 -0
- package/lib/commonjs/utils/ethersUtils.js.map +1 -0
- package/lib/commonjs/utils/fragments.d.ts +465 -0
- package/lib/commonjs/utils/fragments.js +1342 -0
- package/lib/commonjs/utils/fragments.js.map +1 -0
- package/lib/commonjs/utils/help.d.ts +8 -0
- package/lib/commonjs/utils/help.js +61 -0
- package/lib/commonjs/utils/help.js.map +1 -0
- package/lib/commonjs/utils/index.d.ts +56 -0
- package/lib/commonjs/utils/index.js +43 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/interface.d.ts +381 -0
- package/lib/commonjs/utils/interface.js +1121 -0
- package/lib/commonjs/utils/interface.js.map +1 -0
- package/lib/commonjs/utils/message.d.ts +4 -0
- package/lib/commonjs/utils/message.js +38 -0
- package/lib/commonjs/utils/message.js.map +1 -0
- package/lib/commonjs/utils/transaction.d.ts +17 -0
- package/lib/commonjs/utils/transaction.js +678 -0
- package/lib/commonjs/utils/transaction.js.map +1 -0
- package/lib/commonjs/utils/typedData.d.ts +148 -0
- package/lib/commonjs/utils/typedData.js +498 -0
- package/lib/commonjs/utils/typedData.js.map +1 -0
- package/lib/commonjs/utils/validations.d.ts +22 -0
- package/lib/commonjs/utils/validations.js +128 -0
- package/lib/commonjs/utils/validations.js.map +1 -0
- package/lib/esm/index.d.ts +64 -0
- package/lib/esm/index.js +33 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/lib/TransactionBuilder/TransactionBuilder.d.ts +127 -0
- package/lib/esm/lib/TransactionBuilder/TransactionBuilder.js +1767 -0
- package/lib/esm/lib/TransactionBuilder/TransactionBuilder.js.map +1 -0
- package/lib/esm/lib/TransactionBuilder/helper.d.ts +28 -0
- package/lib/esm/lib/TransactionBuilder/helper.js +112 -0
- package/lib/esm/lib/TransactionBuilder/helper.js.map +1 -0
- package/lib/esm/lib/contract/index.d.ts +29 -0
- package/lib/esm/lib/contract/index.js +118 -0
- package/lib/esm/lib/contract/index.js.map +1 -0
- package/lib/esm/lib/contract/method.d.ts +50 -0
- package/lib/esm/lib/contract/method.js +233 -0
- package/lib/esm/lib/contract/method.js.map +1 -0
- package/lib/esm/lib/event.d.ts +85 -0
- package/lib/esm/lib/event.js +132 -0
- package/lib/esm/lib/event.js.map +1 -0
- package/lib/esm/lib/plugin.d.ts +28 -0
- package/lib/esm/lib/plugin.js +79 -0
- package/lib/esm/lib/plugin.js.map +1 -0
- package/lib/esm/lib/providers/HttpProvider.d.ts +15 -0
- package/lib/esm/lib/providers/HttpProvider.js +59 -0
- package/lib/esm/lib/providers/HttpProvider.js.map +1 -0
- package/lib/esm/lib/providers/index.d.ts +6 -0
- package/lib/esm/lib/providers/index.js +4 -0
- package/lib/esm/lib/providers/index.js.map +1 -0
- package/lib/esm/lib/trx.d.ts +315 -0
- package/lib/esm/lib/trx.js +960 -0
- package/lib/esm/lib/trx.js.map +1 -0
- package/lib/esm/package.json +1 -0
- package/lib/esm/paramValidator/index.d.ts +19 -0
- package/lib/esm/paramValidator/index.js +106 -0
- package/lib/esm/paramValidator/index.js.map +1 -0
- package/lib/esm/protocol/core/Tron_pb.cjs +7524 -0
- package/lib/esm/protocol/core/contract/account_contract_pb.cjs +961 -0
- package/lib/esm/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
- package/lib/esm/protocol/core/contract/balance_contract_pb.cjs +3826 -0
- package/lib/esm/protocol/core/contract/common_pb.cjs +34 -0
- package/lib/esm/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
- package/lib/esm/protocol/core/contract/proposal_contract_pb.cjs +675 -0
- package/lib/esm/protocol/core/contract/smart_contract_pb.cjs +2960 -0
- package/lib/esm/protocol/core/contract/storage_contract_pb.cjs +848 -0
- package/lib/esm/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
- package/lib/esm/protocol/core/contract/witness_contract_pb.cjs +956 -0
- package/lib/esm/tronweb.d.ts +111 -0
- package/lib/esm/tronweb.js +360 -0
- package/lib/esm/tronweb.js.map +1 -0
- package/lib/esm/types/ABI.d.ts +59 -0
- package/lib/esm/types/ABI.js +2 -0
- package/lib/esm/types/ABI.js.map +1 -0
- package/lib/esm/types/APIResponse.d.ts +31 -0
- package/lib/esm/types/APIResponse.js +2 -0
- package/lib/esm/types/APIResponse.js.map +1 -0
- package/lib/esm/types/Contract.d.ts +287 -0
- package/lib/esm/types/Contract.js +60 -0
- package/lib/esm/types/Contract.js.map +1 -0
- package/lib/esm/types/Providers.d.ts +8 -0
- package/lib/esm/types/Providers.js +2 -0
- package/lib/esm/types/Providers.js.map +1 -0
- package/lib/esm/types/Transaction.d.ts +65 -0
- package/lib/esm/types/Transaction.js +2 -0
- package/lib/esm/types/Transaction.js.map +1 -0
- package/lib/esm/types/TransactionBuilder.d.ts +270 -0
- package/lib/esm/types/TransactionBuilder.js +2 -0
- package/lib/esm/types/TransactionBuilder.js.map +1 -0
- package/lib/esm/types/TronWeb.d.ts +20 -0
- package/lib/esm/types/TronWeb.js +2 -0
- package/lib/esm/types/TronWeb.js.map +1 -0
- package/lib/esm/types/Trx.d.ts +263 -0
- package/lib/esm/types/Trx.js +39 -0
- package/lib/esm/types/Trx.js.map +1 -0
- package/lib/esm/types/UtilsTypes.d.ts +23 -0
- package/lib/esm/types/UtilsTypes.js +2 -0
- package/lib/esm/types/UtilsTypes.js.map +1 -0
- package/lib/esm/types/index.d.ts +9 -0
- package/lib/esm/types/index.js +10 -0
- package/lib/esm/types/index.js.map +1 -0
- package/lib/esm/utils/abi.d.ts +5 -0
- package/lib/esm/utils/abi.js +245 -0
- package/lib/esm/utils/abi.js.map +1 -0
- package/lib/esm/utils/accounts.d.ts +22 -0
- package/lib/esm/utils/accounts.js +46 -0
- package/lib/esm/utils/accounts.js.map +1 -0
- package/lib/esm/utils/address.d.ts +12 -0
- package/lib/esm/utils/address.js +82 -0
- package/lib/esm/utils/address.js.map +1 -0
- package/lib/esm/utils/base58.d.ts +3 -0
- package/lib/esm/utils/base58.js +64 -0
- package/lib/esm/utils/base58.js.map +1 -0
- package/lib/esm/utils/base64.d.ts +10 -0
- package/lib/esm/utils/base64.js +169 -0
- package/lib/esm/utils/base64.js.map +1 -0
- package/lib/esm/utils/bytes.d.ts +7 -0
- package/lib/esm/utils/bytes.js +53 -0
- package/lib/esm/utils/bytes.js.map +1 -0
- package/lib/esm/utils/code.d.ts +12 -0
- package/lib/esm/utils/code.js +149 -0
- package/lib/esm/utils/code.js.map +1 -0
- package/lib/esm/utils/crypto.d.ts +25 -0
- package/lib/esm/utils/crypto.js +198 -0
- package/lib/esm/utils/crypto.js.map +1 -0
- package/lib/esm/utils/ethersUtils.d.ts +14 -0
- package/lib/esm/utils/ethersUtils.js +17 -0
- package/lib/esm/utils/ethersUtils.js.map +1 -0
- package/lib/esm/utils/fragments.d.ts +465 -0
- package/lib/esm/utils/fragments.js +1330 -0
- package/lib/esm/utils/fragments.js.map +1 -0
- package/lib/esm/utils/help.d.ts +8 -0
- package/lib/esm/utils/help.js +51 -0
- package/lib/esm/utils/help.js.map +1 -0
- package/lib/esm/utils/index.d.ts +56 -0
- package/lib/esm/utils/index.js +40 -0
- package/lib/esm/utils/index.js.map +1 -0
- package/lib/esm/utils/interface.d.ts +381 -0
- package/lib/esm/utils/interface.js +1112 -0
- package/lib/esm/utils/interface.js.map +1 -0
- package/lib/esm/utils/message.d.ts +4 -0
- package/lib/esm/utils/message.js +32 -0
- package/lib/esm/utils/message.js.map +1 -0
- package/lib/esm/utils/transaction.d.ts +17 -0
- package/lib/esm/utils/transaction.js +669 -0
- package/lib/esm/utils/transaction.js.map +1 -0
- package/lib/esm/utils/typedData.d.ts +148 -0
- package/lib/esm/utils/typedData.js +493 -0
- package/lib/esm/utils/typedData.js.map +1 -0
- package/lib/esm/utils/validations.d.ts +22 -0
- package/lib/esm/utils/validations.js +108 -0
- package/lib/esm/utils/validations.js.map +1 -0
- package/package.json +110 -0
- package/src/index.ts +42 -0
- package/src/lib/TransactionBuilder/TransactionBuilder.ts +2272 -0
- package/src/lib/TransactionBuilder/helper.ts +139 -0
- package/src/lib/contract/index.ts +151 -0
- package/src/lib/contract/method.ts +336 -0
- package/src/lib/event.ts +248 -0
- package/src/lib/plugin.ts +102 -0
- package/src/lib/providers/HttpProvider.ts +66 -0
- package/src/lib/providers/index.ts +6 -0
- package/src/lib/trx.ts +1463 -0
- package/src/paramValidator/index.ts +136 -0
- package/src/protocol/core/Tron_pb.cjs +7524 -0
- package/src/protocol/core/contract/account_contract_pb.cjs +961 -0
- package/src/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
- package/src/protocol/core/contract/balance_contract_pb.cjs +3826 -0
- package/src/protocol/core/contract/common_pb.cjs +34 -0
- package/src/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
- package/src/protocol/core/contract/proposal_contract_pb.cjs +675 -0
- package/src/protocol/core/contract/smart_contract_pb.cjs +2960 -0
- package/src/protocol/core/contract/storage_contract_pb.cjs +848 -0
- package/src/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
- package/src/protocol/core/contract/witness_contract_pb.cjs +956 -0
- package/src/tronweb.ts +437 -0
- package/src/types/ABI.ts +82 -0
- package/src/types/APIResponse.ts +34 -0
- package/src/types/Contract.ts +352 -0
- package/src/types/Providers.ts +7 -0
- package/src/types/Transaction.ts +70 -0
- package/src/types/TransactionBuilder.ts +281 -0
- package/src/types/TronWeb.ts +23 -0
- package/src/types/Trx.ts +285 -0
- package/src/types/UtilsTypes.ts +25 -0
- package/src/types/index.ts +9 -0
- package/src/types/interface.d.ts +1 -0
- package/src/utils/abi.ts +257 -0
- package/src/utils/accounts.ts +60 -0
- package/src/utils/address.ts +89 -0
- package/src/utils/base58.ts +78 -0
- package/src/utils/base64.ts +200 -0
- package/src/utils/bytes.ts +68 -0
- package/src/utils/code.ts +172 -0
- package/src/utils/crypto.ts +264 -0
- package/src/utils/ethersUtils.ts +60 -0
- package/src/utils/fragments.ts +1738 -0
- package/src/utils/help.ts +59 -0
- package/src/utils/index.ts +42 -0
- package/src/utils/interface.ts +1362 -0
- package/src/utils/message.ts +38 -0
- package/src/utils/transaction.ts +991 -0
- package/src/utils/typedData.ts +688 -0
- package/src/utils/validations.ts +130 -0
@@ -0,0 +1,678 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.txCheck = exports.txCheckWithArgs = exports.txJsonToPbWithArgs = exports.txPbToRawDataHex = exports.txPbToTxID = exports.txJsonToPb = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
6
|
+
// @ts-nocheck
|
7
|
+
const any_pb_js_1 = tslib_1.__importDefault(require("@tronweb3/google-protobuf/google/protobuf/any_pb.js"));
|
8
|
+
require("../protocol/core/Tron_pb.cjs");
|
9
|
+
const { Transaction, Permission, Key } = globalThis.TronWebProto;
|
10
|
+
require("../protocol/core/contract/balance_contract_pb.cjs");
|
11
|
+
const { TransferContract, FreezeBalanceContract, UnfreezeBalanceContract, WithdrawBalanceContract, FreezeBalanceV2Contract, UnfreezeBalanceV2Contract, WithdrawExpireUnfreezeContract, DelegateResourceContract, UnDelegateResourceContract, } = globalThis.TronWebProto;
|
12
|
+
require("../protocol/core/contract/asset_issue_contract_pb.cjs");
|
13
|
+
const { TransferAssetContract, ParticipateAssetIssueContract, AssetIssueContract, UpdateAssetContract } = globalThis.TronWebProto;
|
14
|
+
require("../protocol/core/contract/smart_contract_pb.cjs");
|
15
|
+
const { TriggerSmartContract, ClearABIContract, UpdateEnergyLimitContract, UpdateSettingContract, CreateSmartContract, SmartContract, } = globalThis.TronWebProto;
|
16
|
+
require("../protocol/core/contract/common_pb.cjs");
|
17
|
+
const { ResourceCode } = globalThis.TronWebProto;
|
18
|
+
require("../protocol/core/contract/witness_contract_pb.cjs");
|
19
|
+
const { WitnessCreateContract, VoteWitnessContract } = globalThis.TronWebProto;
|
20
|
+
require("../protocol/core/contract/storage_contract_pb.cjs");
|
21
|
+
const { UpdateBrokerageContract } = globalThis.TronWebProto;
|
22
|
+
require("../protocol/core/contract/account_contract_pb.cjs");
|
23
|
+
const { AccountCreateContract, AccountUpdateContract, SetAccountIdContract, AccountPermissionUpdateContract } = globalThis.TronWebProto;
|
24
|
+
require("../protocol/core/contract/proposal_contract_pb.cjs");
|
25
|
+
const { ProposalCreateContract, ProposalDeleteContract, ProposalApproveContract } = globalThis.TronWebProto;
|
26
|
+
require("../protocol/core/contract/exchange_contract_pb.cjs");
|
27
|
+
const { ExchangeCreateContract, ExchangeInjectContract, ExchangeWithdrawContract, ExchangeTransactionContract } = globalThis.TronWebProto;
|
28
|
+
const bytes_js_1 = require("./bytes.js");
|
29
|
+
const ethersUtils_js_1 = require("./ethersUtils.js");
|
30
|
+
const tronweb_js_1 = tslib_1.__importDefault(require("../tronweb.js"));
|
31
|
+
const validations_js_1 = require("./validations.js");
|
32
|
+
const fromHexString = (hexString) => {
|
33
|
+
if (!hexString || hexString.length === 0)
|
34
|
+
return new Uint8Array([]);
|
35
|
+
return new Uint8Array(tronweb_js_1.default.address
|
36
|
+
.toHex(hexString)
|
37
|
+
.match(/.{1,2}/g)
|
38
|
+
.map((byte) => parseInt(byte, 16)));
|
39
|
+
};
|
40
|
+
const stringToUint8Array = (hexString) => {
|
41
|
+
if (!hexString || hexString.length === 0)
|
42
|
+
return new Uint8Array([]);
|
43
|
+
return new Uint8Array(((0, validations_js_1.isHex)(hexString) ? hexString : tronweb_js_1.default.toHex(hexString))
|
44
|
+
.replace(/^0x/, '')
|
45
|
+
.match(/.{1,2}/g)
|
46
|
+
.map((byte) => parseInt(byte, 16)));
|
47
|
+
};
|
48
|
+
const flexToUint8Array = (str, visible) => {
|
49
|
+
if (!visible)
|
50
|
+
return stringToUint8Array(str.replace(/^0x/, ''));
|
51
|
+
return stringToUint8Array(tronweb_js_1.default.fromUtf8(str).replace(/^0x/, ''));
|
52
|
+
};
|
53
|
+
const sha3 = (string, prefix = true) => {
|
54
|
+
return (prefix ? '0x' : '') + (0, ethersUtils_js_1.keccak256)(Buffer.from(string, 'utf-8')).toString().substring(2);
|
55
|
+
};
|
56
|
+
const buildCommonTransaction = (message, contractType, typeName, permissionId) => {
|
57
|
+
const anyValue = new any_pb_js_1.default.Any();
|
58
|
+
anyValue.pack(message.serializeBinary(), 'protocol.' + typeName);
|
59
|
+
const contract = new Transaction.Contract();
|
60
|
+
contract.setType(contractType);
|
61
|
+
contract.setParameter(anyValue);
|
62
|
+
if (permissionId) {
|
63
|
+
contract.setPermissionId(permissionId);
|
64
|
+
}
|
65
|
+
const raw = new Transaction.raw();
|
66
|
+
raw.addContract(contract);
|
67
|
+
const transaction = new Transaction();
|
68
|
+
transaction.setRawData(raw);
|
69
|
+
return transaction;
|
70
|
+
};
|
71
|
+
// wallet/createtransaction for sendTrx
|
72
|
+
const buildTransferContract = (value, options) => {
|
73
|
+
const { to_address, owner_address, amount } = value;
|
74
|
+
const transferContract = new TransferContract();
|
75
|
+
transferContract.setToAddress(fromHexString(to_address));
|
76
|
+
transferContract.setOwnerAddress(fromHexString(owner_address));
|
77
|
+
transferContract.setAmount(amount);
|
78
|
+
return buildCommonTransaction(transferContract, Transaction.Contract.ContractType.TRANSFERCONTRACT, 'TransferContract', options.Permission_id);
|
79
|
+
};
|
80
|
+
// wallet/transferasset for sendToken
|
81
|
+
const buildTransferAssetContract = (value, options) => {
|
82
|
+
const { to_address, owner_address, amount, asset_name } = value;
|
83
|
+
const transferContract = new TransferAssetContract();
|
84
|
+
transferContract.setToAddress(fromHexString(to_address));
|
85
|
+
transferContract.setOwnerAddress(fromHexString(owner_address));
|
86
|
+
transferContract.setAssetName(flexToUint8Array(asset_name, options.visible));
|
87
|
+
transferContract.setAmount(amount);
|
88
|
+
return buildCommonTransaction(transferContract, Transaction.Contract.ContractType.TRANSFERASSETCONTRACT, 'TransferAssetContract', options.Permission_id);
|
89
|
+
};
|
90
|
+
// wallet/participateassetissue for purchaseToken
|
91
|
+
const buildParticipateAssetIssueContract = (value, options) => {
|
92
|
+
const pbObj = new ParticipateAssetIssueContract();
|
93
|
+
pbObj.setToAddress(fromHexString(value.to_address));
|
94
|
+
pbObj.setOwnerAddress(fromHexString(value.owner_address));
|
95
|
+
pbObj.setAssetName(flexToUint8Array(value.asset_name, options.visible));
|
96
|
+
pbObj.setAmount(value.amount);
|
97
|
+
return buildCommonTransaction(pbObj, Transaction.Contract.ContractType.PARTICIPATEASSETISSUECONTRACT, 'ParticipateAssetIssueContract', options.Permission_id);
|
98
|
+
};
|
99
|
+
const buildTriggerSmartContract = (value, options) => {
|
100
|
+
const triggerSmartContract = new TriggerSmartContract();
|
101
|
+
const { owner_address, contract_address, parameter = '', function_selector, call_value, call_token_value, token_id, data, } = value;
|
102
|
+
triggerSmartContract.setOwnerAddress(fromHexString(owner_address));
|
103
|
+
triggerSmartContract.setContractAddress(fromHexString(contract_address));
|
104
|
+
triggerSmartContract.setCallValue(call_value);
|
105
|
+
if (data) {
|
106
|
+
triggerSmartContract.setData(stringToUint8Array(data));
|
107
|
+
}
|
108
|
+
else if (function_selector) {
|
109
|
+
const contractData = sha3(function_selector).substring(2, 10) + parameter;
|
110
|
+
triggerSmartContract.setData(stringToUint8Array(contractData));
|
111
|
+
}
|
112
|
+
if (token_id) {
|
113
|
+
triggerSmartContract.setTokenId(token_id);
|
114
|
+
}
|
115
|
+
if (call_token_value) {
|
116
|
+
triggerSmartContract.setCallTokenValue(call_token_value);
|
117
|
+
}
|
118
|
+
return buildCommonTransaction(triggerSmartContract, Transaction.Contract.ContractType.TRIGGERSMARTCONTRACT, 'TriggerSmartContract', options.Permission_id);
|
119
|
+
};
|
120
|
+
const buildFreezeBalanceContract = (value, options) => {
|
121
|
+
const freezeBalanceContract = new FreezeBalanceContract();
|
122
|
+
const { owner_address, frozen_balance, frozen_duration, resource, receiver_address } = value;
|
123
|
+
freezeBalanceContract.setOwnerAddress(fromHexString(owner_address));
|
124
|
+
freezeBalanceContract.setFrozenBalance(frozen_balance);
|
125
|
+
freezeBalanceContract.setFrozenDuration(frozen_duration);
|
126
|
+
if (resource) {
|
127
|
+
freezeBalanceContract.setResource(ResourceCode[resource]);
|
128
|
+
}
|
129
|
+
if (receiver_address) {
|
130
|
+
freezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));
|
131
|
+
}
|
132
|
+
return buildCommonTransaction(freezeBalanceContract, Transaction.Contract.ContractType.FREEZEBALANCECONTRACT, 'FreezeBalanceContract', options.Permission_id);
|
133
|
+
};
|
134
|
+
const buildUnfreezeBalanceContract = (value, options) => {
|
135
|
+
const unfreezeBalanceContract = new UnfreezeBalanceContract();
|
136
|
+
const { owner_address, resource, receiver_address } = value;
|
137
|
+
unfreezeBalanceContract.setOwnerAddress(fromHexString(owner_address));
|
138
|
+
if (resource) {
|
139
|
+
unfreezeBalanceContract.setResource(ResourceCode[resource]);
|
140
|
+
}
|
141
|
+
if (receiver_address) {
|
142
|
+
unfreezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));
|
143
|
+
}
|
144
|
+
return buildCommonTransaction(unfreezeBalanceContract, Transaction.Contract.ContractType.UNFREEZEBALANCECONTRACT, 'UnfreezeBalanceContract', options.Permission_id);
|
145
|
+
};
|
146
|
+
const buildWithdrawBalanceContract = (value, options) => {
|
147
|
+
const withdrawbalanceContract = new WithdrawBalanceContract();
|
148
|
+
const { owner_address } = value;
|
149
|
+
withdrawbalanceContract.setOwnerAddress(fromHexString(owner_address));
|
150
|
+
return buildCommonTransaction(withdrawbalanceContract, Transaction.Contract.ContractType.WITHDRAWBALANCECONTRACT, 'WithdrawBalanceContract', options.Permission_id);
|
151
|
+
};
|
152
|
+
const buildFreezeBalanceV2Contract = (value, options) => {
|
153
|
+
const freezeBalanceV2Contract = new FreezeBalanceV2Contract();
|
154
|
+
const { owner_address, frozen_balance, resource } = value;
|
155
|
+
freezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));
|
156
|
+
freezeBalanceV2Contract.setFrozenBalance(frozen_balance);
|
157
|
+
freezeBalanceV2Contract.setResource(ResourceCode[resource]);
|
158
|
+
return buildCommonTransaction(freezeBalanceV2Contract, Transaction.Contract.ContractType.FREEZEBALANCEV2CONTRACT, 'FreezeBalanceV2Contract', options.Permission_id);
|
159
|
+
};
|
160
|
+
const buildCancelFreezeBalanceV2Contract = (value, options) => {
|
161
|
+
const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();
|
162
|
+
const { owner_address } = value;
|
163
|
+
withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));
|
164
|
+
return buildCommonTransaction(withdrawExpireUnfreeze, Transaction.Contract.ContractType.CANCELALLUNFREEZEV2CONTRACT, 'CancelAllUnfreezeV2Contract', options.Permission_id);
|
165
|
+
};
|
166
|
+
const buildUnfreezeBalanceV2Contract = (value, options) => {
|
167
|
+
const unfreezeBalanceV2Contract = new UnfreezeBalanceV2Contract();
|
168
|
+
const { owner_address, unfreeze_balance, resource } = value;
|
169
|
+
unfreezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));
|
170
|
+
unfreezeBalanceV2Contract.setUnfreezeBalance(unfreeze_balance);
|
171
|
+
unfreezeBalanceV2Contract.setResource(ResourceCode[resource]);
|
172
|
+
return buildCommonTransaction(unfreezeBalanceV2Contract, Transaction.Contract.ContractType.UNFREEZEBALANCEV2CONTRACT, 'UnfreezeBalanceV2Contract', options.Permission_id);
|
173
|
+
};
|
174
|
+
const buildDelegateResourceContract = (value, options) => {
|
175
|
+
const delegateResourceContract = new DelegateResourceContract();
|
176
|
+
const { owner_address, receiver_address, balance, resource, lock = false, lock_period } = value;
|
177
|
+
delegateResourceContract.setOwnerAddress(fromHexString(owner_address));
|
178
|
+
delegateResourceContract.setBalance(balance);
|
179
|
+
delegateResourceContract.setResource(ResourceCode[resource]);
|
180
|
+
delegateResourceContract.setLock(lock);
|
181
|
+
delegateResourceContract.setLockPeriod(lock_period);
|
182
|
+
delegateResourceContract.setReceiverAddress(fromHexString(receiver_address));
|
183
|
+
return buildCommonTransaction(delegateResourceContract, Transaction.Contract.ContractType.DELEGATERESOURCECONTRACT, 'DelegateResourceContract', options.Permission_id);
|
184
|
+
};
|
185
|
+
const buildUnDelegateResourceContract = (value, options) => {
|
186
|
+
const unDelegateResourceContract = new UnDelegateResourceContract();
|
187
|
+
const { owner_address, receiver_address, balance, resource } = value;
|
188
|
+
unDelegateResourceContract.setOwnerAddress(fromHexString(owner_address));
|
189
|
+
unDelegateResourceContract.setBalance(balance);
|
190
|
+
unDelegateResourceContract.setResource(ResourceCode[resource]);
|
191
|
+
unDelegateResourceContract.setReceiverAddress(fromHexString(receiver_address));
|
192
|
+
return buildCommonTransaction(unDelegateResourceContract, Transaction.Contract.ContractType.UNDELEGATERESOURCECONTRACT, 'UnDelegateResourceContract', options.Permission_id);
|
193
|
+
};
|
194
|
+
const buildWithdrawExpireUnfreezeContract = (value, options) => {
|
195
|
+
const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();
|
196
|
+
const { owner_address } = value;
|
197
|
+
withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));
|
198
|
+
return buildCommonTransaction(withdrawExpireUnfreeze, Transaction.Contract.ContractType.WITHDRAWEXPIREUNFREEZECONTRACT, 'WithdrawExpireUnfreezeContract', options.Permission_id);
|
199
|
+
};
|
200
|
+
// applyForSR
|
201
|
+
const buildCreateWitness = (value, options) => {
|
202
|
+
const createWitnessContract = new WitnessCreateContract();
|
203
|
+
const { owner_address, url } = value;
|
204
|
+
createWitnessContract.setOwnerAddress(fromHexString(owner_address));
|
205
|
+
createWitnessContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));
|
206
|
+
return buildCommonTransaction(createWitnessContract, Transaction.Contract.ContractType.WITNESSCREATECONTRACT, 'WitnessCreateContract', options.Permission_id);
|
207
|
+
};
|
208
|
+
// vote
|
209
|
+
const buildVoteWitnessAccount = (value, options) => {
|
210
|
+
const voteWitnessContract = new VoteWitnessContract();
|
211
|
+
const { owner_address, votes } = value;
|
212
|
+
voteWitnessContract.setOwnerAddress(fromHexString(owner_address));
|
213
|
+
votes.forEach((voteItem) => {
|
214
|
+
const vote = new VoteWitnessContract.Vote();
|
215
|
+
const { vote_address, vote_count } = voteItem;
|
216
|
+
vote.setVoteAddress(fromHexString(vote_address));
|
217
|
+
const numberOfVotes = parseInt(vote_count);
|
218
|
+
vote.setVoteCount(numberOfVotes);
|
219
|
+
voteWitnessContract.addVotes(vote);
|
220
|
+
});
|
221
|
+
return buildCommonTransaction(voteWitnessContract, Transaction.Contract.ContractType.VOTEWITNESSCONTRACT, 'VoteWitnessContract', options.Permission_id);
|
222
|
+
};
|
223
|
+
const buildCreateSmartContract = (value, options) => {
|
224
|
+
const params = value?.new_contract
|
225
|
+
? {
|
226
|
+
...{
|
227
|
+
owner_address: value.owner_address,
|
228
|
+
call_token_value: value.call_token_value,
|
229
|
+
token_id: value.token_id,
|
230
|
+
},
|
231
|
+
...value.new_contract,
|
232
|
+
}
|
233
|
+
: value;
|
234
|
+
const { owner_address, consume_user_resource_percent, origin_energy_limit, abi, bytecode = '', parameter = '', call_value, call_token_value, token_id, name: contracName, } = params;
|
235
|
+
let { origin_address } = params;
|
236
|
+
const createSmartContract = new CreateSmartContract();
|
237
|
+
createSmartContract.setOwnerAddress(fromHexString(owner_address));
|
238
|
+
if (token_id) {
|
239
|
+
createSmartContract.setTokenId(token_id);
|
240
|
+
}
|
241
|
+
if (call_token_value) {
|
242
|
+
createSmartContract.setCallTokenValue(call_token_value);
|
243
|
+
}
|
244
|
+
const smartContractBuilder = new SmartContract();
|
245
|
+
if (abi) {
|
246
|
+
let abiJson;
|
247
|
+
if (typeof abi === 'string') {
|
248
|
+
abiJson = JSON.parse(abi);
|
249
|
+
}
|
250
|
+
else {
|
251
|
+
abiJson = abi?.entrys || []; // abi could be an empty object if origin abi is `[]`;
|
252
|
+
}
|
253
|
+
const abiBuilder = new SmartContract.ABI();
|
254
|
+
const buildEntryParam = (data) => {
|
255
|
+
const param = new SmartContract.ABI.Entry.Param();
|
256
|
+
const { indexed, name, type } = data;
|
257
|
+
if (indexed === true) {
|
258
|
+
param.setIndexed(true);
|
259
|
+
}
|
260
|
+
param.setName(name);
|
261
|
+
param.setType(type);
|
262
|
+
return param;
|
263
|
+
};
|
264
|
+
const entryBuilders = abiJson.map((entry) => {
|
265
|
+
const { anonymous, constant, name, inputs, outputs, type, payable, stateMutability } = entry;
|
266
|
+
const entryBuilder = new SmartContract.ABI.Entry();
|
267
|
+
entryBuilder.setAnonymous(anonymous);
|
268
|
+
entryBuilder.setConstant(constant);
|
269
|
+
entryBuilder.setName(name);
|
270
|
+
if (inputs) {
|
271
|
+
entryBuilder.setInputsList(inputs.map((input) => buildEntryParam(input)));
|
272
|
+
}
|
273
|
+
if (outputs) {
|
274
|
+
entryBuilder.setOutputsList(outputs.map((output) => buildEntryParam(output)));
|
275
|
+
}
|
276
|
+
if (type) {
|
277
|
+
entryBuilder.setType(SmartContract.ABI.Entry.EntryType[type.toUpperCase()]);
|
278
|
+
}
|
279
|
+
entryBuilder.setPayable(payable);
|
280
|
+
if (stateMutability) {
|
281
|
+
entryBuilder.setStatemutability(SmartContract.ABI.Entry.StateMutabilityType[stateMutability.toUpperCase()]);
|
282
|
+
}
|
283
|
+
return entryBuilder;
|
284
|
+
});
|
285
|
+
abiBuilder.setEntrysList(entryBuilders);
|
286
|
+
smartContractBuilder.setAbi(abiBuilder);
|
287
|
+
}
|
288
|
+
if (call_value) {
|
289
|
+
smartContractBuilder.setCallValue(call_value);
|
290
|
+
}
|
291
|
+
smartContractBuilder.setConsumeUserResourcePercent(consume_user_resource_percent);
|
292
|
+
smartContractBuilder.setOriginEnergyLimit(origin_energy_limit);
|
293
|
+
if (!origin_address) {
|
294
|
+
origin_address = owner_address;
|
295
|
+
}
|
296
|
+
smartContractBuilder.setOriginAddress(fromHexString(origin_address));
|
297
|
+
if (bytecode) {
|
298
|
+
const bytecodeParameter = bytecode.replace(/^0x/, '') + parameter.replace(/^0x/, '');
|
299
|
+
smartContractBuilder.setBytecode(stringToUint8Array(bytecodeParameter));
|
300
|
+
}
|
301
|
+
smartContractBuilder.setName(contracName);
|
302
|
+
createSmartContract.setNewContract(smartContractBuilder);
|
303
|
+
return buildCommonTransaction(createSmartContract, Transaction.Contract.ContractType.CREATESMARTCONTRACT, 'CreateSmartContract', options.Permission_id);
|
304
|
+
};
|
305
|
+
const buildClearABIContract = (value, options) => {
|
306
|
+
const { contract_address, owner_address } = value;
|
307
|
+
const clearABIContract = new ClearABIContract();
|
308
|
+
clearABIContract.setOwnerAddress(fromHexString(owner_address));
|
309
|
+
clearABIContract.setContractAddress(fromHexString(contract_address));
|
310
|
+
return buildCommonTransaction(clearABIContract, Transaction.Contract.ContractType.CLEARABICONTRACT, 'ClearABIContract', options.Permission_id);
|
311
|
+
};
|
312
|
+
// updateBrokerage
|
313
|
+
const buildUpdateBrokerageContract = (value, options) => {
|
314
|
+
const { brokerage, owner_address } = value;
|
315
|
+
const updateBrokerageContract = new UpdateBrokerageContract();
|
316
|
+
updateBrokerageContract.setOwnerAddress(fromHexString(owner_address));
|
317
|
+
updateBrokerageContract.setBrokerage(brokerage);
|
318
|
+
return buildCommonTransaction(updateBrokerageContract, Transaction.Contract.ContractType.UPDATEBROKERAGECONTRACT, 'UpdateBrokerageContract', options.Permission_id);
|
319
|
+
};
|
320
|
+
// createToken
|
321
|
+
const buildAssetIssueContract = (value, options) => {
|
322
|
+
const { owner_address, name, abbr, description, url, total_supply, trx_num, num, start_time, end_time, precision, free_asset_net_limit, public_free_asset_net_limit, public_free_asset_net_usage = 0, public_latest_free_net_time = 0, vote_score = 0, frozen_supply, } = value;
|
323
|
+
const assetIssueContract = new AssetIssueContract();
|
324
|
+
assetIssueContract.setOwnerAddress(fromHexString(owner_address));
|
325
|
+
if (name) {
|
326
|
+
assetIssueContract.setName(stringToUint8Array(name.replace(/^0x/, '')));
|
327
|
+
}
|
328
|
+
if (abbr) {
|
329
|
+
assetIssueContract.setAbbr(stringToUint8Array(abbr.replace(/^0x/, '')));
|
330
|
+
}
|
331
|
+
assetIssueContract.setTotalSupply(total_supply);
|
332
|
+
assetIssueContract.setNum(num);
|
333
|
+
assetIssueContract.setEndTime(end_time);
|
334
|
+
assetIssueContract.setStartTime(start_time);
|
335
|
+
assetIssueContract.setTrxNum(trx_num);
|
336
|
+
assetIssueContract.setVoteScore(vote_score);
|
337
|
+
if (precision) {
|
338
|
+
assetIssueContract.setPrecision(precision);
|
339
|
+
}
|
340
|
+
if (public_latest_free_net_time) {
|
341
|
+
assetIssueContract.setPublicLatestFreeNetTime(public_latest_free_net_time);
|
342
|
+
}
|
343
|
+
if (description) {
|
344
|
+
assetIssueContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));
|
345
|
+
}
|
346
|
+
if (url) {
|
347
|
+
assetIssueContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));
|
348
|
+
}
|
349
|
+
assetIssueContract.setPublicFreeAssetNetUsage(public_free_asset_net_usage);
|
350
|
+
assetIssueContract.setFreeAssetNetLimit(free_asset_net_limit);
|
351
|
+
assetIssueContract.setPublicFreeAssetNetLimit(public_free_asset_net_limit);
|
352
|
+
if (frozen_supply) {
|
353
|
+
const frozenSupplyContract = new AssetIssueContract.FrozenSupply();
|
354
|
+
frozenSupplyContract.setFrozenAmount(frozen_supply.length ? frozen_supply[0].frozen_amount : frozen_supply.frozen_amount);
|
355
|
+
frozenSupplyContract.setFrozenDays(frozen_supply.length ? frozen_supply[0].frozen_days : frozen_supply.frozen_days);
|
356
|
+
assetIssueContract.addFrozenSupply(frozenSupplyContract);
|
357
|
+
}
|
358
|
+
return buildCommonTransaction(assetIssueContract, Transaction.Contract.ContractType.ASSETISSUECONTRACT, 'AssetIssueContract', options.Permission_id);
|
359
|
+
};
|
360
|
+
//createAccount
|
361
|
+
const buildAccountCreateContract = (value, options) => {
|
362
|
+
const accountCreateContract = new AccountCreateContract();
|
363
|
+
const { account_address, owner_address } = value;
|
364
|
+
accountCreateContract.setOwnerAddress(fromHexString(owner_address));
|
365
|
+
accountCreateContract.setAccountAddress(fromHexString(account_address.replace(/^0x/, '')));
|
366
|
+
return buildCommonTransaction(accountCreateContract, Transaction.Contract.ContractType.ACCOUNTCREATECONTRACT, 'AccountCreateContract', options.Permission_id);
|
367
|
+
};
|
368
|
+
// updateAccount
|
369
|
+
const buildAccountUpdateContract = (value, options) => {
|
370
|
+
const accountUpdateContract = new AccountUpdateContract();
|
371
|
+
const { account_name, owner_address } = value;
|
372
|
+
accountUpdateContract.setOwnerAddress(fromHexString(owner_address));
|
373
|
+
accountUpdateContract.setAccountName(stringToUint8Array(account_name.replace(/^0x/, '')));
|
374
|
+
return buildCommonTransaction(accountUpdateContract, Transaction.Contract.ContractType.ACCOUNTUPDATECONTRACT, 'AccountUpdateContract', options.Permission_id);
|
375
|
+
};
|
376
|
+
// setAccountId
|
377
|
+
const buildSetAccountIdContract = (value, options) => {
|
378
|
+
const setAccountIdContract = new SetAccountIdContract();
|
379
|
+
const { account_id, owner_address } = value;
|
380
|
+
setAccountIdContract.setOwnerAddress(fromHexString(owner_address));
|
381
|
+
setAccountIdContract.setAccountId(stringToUint8Array(account_id.replace(/^0x/, '')));
|
382
|
+
return buildCommonTransaction(setAccountIdContract, Transaction.Contract.ContractType.SETACCOUNTIDCONTRACT, 'SetAccountIdContract', options.Permission_id);
|
383
|
+
};
|
384
|
+
const buildProposalCreateContract = (value, options) => {
|
385
|
+
const proposalCreateContract = new ProposalCreateContract();
|
386
|
+
const { owner_address, parameters } = value;
|
387
|
+
proposalCreateContract.setOwnerAddress(fromHexString(owner_address));
|
388
|
+
parameters.forEach((parameter) => {
|
389
|
+
proposalCreateContract.getParametersMap().set(parameter.key, parameter.value);
|
390
|
+
});
|
391
|
+
return buildCommonTransaction(proposalCreateContract, Transaction.Contract.ContractType.PROPOSALCREATECONTRACT, 'ProposalCreateContract', options.Permission_id);
|
392
|
+
};
|
393
|
+
const buildProposalDeleteContract = (value, options) => {
|
394
|
+
const proposalDeleteContract = new ProposalDeleteContract();
|
395
|
+
const { owner_address, proposal_id } = value;
|
396
|
+
proposalDeleteContract.setOwnerAddress(fromHexString(owner_address));
|
397
|
+
proposalDeleteContract.setProposalId(proposal_id);
|
398
|
+
return buildCommonTransaction(proposalDeleteContract, Transaction.Contract.ContractType.PROPOSALDELETECONTRACT, 'ProposalDeleteContract', options.Permission_id);
|
399
|
+
};
|
400
|
+
const buildVoteProposalContract = (value, options) => {
|
401
|
+
const proposalVoteContract = new ProposalApproveContract();
|
402
|
+
const { owner_address, proposal_id, is_add_approval } = value;
|
403
|
+
proposalVoteContract.setOwnerAddress(fromHexString(owner_address));
|
404
|
+
proposalVoteContract.setProposalId(proposal_id);
|
405
|
+
proposalVoteContract.setIsAddApproval(is_add_approval);
|
406
|
+
return buildCommonTransaction(proposalVoteContract, Transaction.Contract.ContractType.PROPOSALAPPROVECONTRACT, 'ProposalApproveContract', options.Permission_id);
|
407
|
+
};
|
408
|
+
const buildExchangeCreateContract = (value, options) => {
|
409
|
+
const exchangeCreateContract = new ExchangeCreateContract();
|
410
|
+
const { owner_address, first_token_id, first_token_balance, second_token_id, second_token_balance } = value;
|
411
|
+
exchangeCreateContract.setOwnerAddress(fromHexString(owner_address));
|
412
|
+
exchangeCreateContract.setFirstTokenId(flexToUint8Array(first_token_id, options.visible));
|
413
|
+
exchangeCreateContract.setFirstTokenBalance(first_token_balance);
|
414
|
+
exchangeCreateContract.setSecondTokenId(flexToUint8Array(second_token_id, options.visible));
|
415
|
+
exchangeCreateContract.setSecondTokenBalance(second_token_balance);
|
416
|
+
return buildCommonTransaction(exchangeCreateContract, Transaction.Contract.ContractType.EXCHANGECREATECONTRACT, 'ExchangeCreateContract', options.Permission_id);
|
417
|
+
};
|
418
|
+
const buildExchangeInjectContract = (value, options) => {
|
419
|
+
const exchangeInjectContract = new ExchangeInjectContract();
|
420
|
+
const { owner_address, exchange_id, token_id, quant } = value;
|
421
|
+
exchangeInjectContract.setOwnerAddress(fromHexString(owner_address));
|
422
|
+
exchangeInjectContract.setExchangeId(exchange_id);
|
423
|
+
exchangeInjectContract.setTokenId(flexToUint8Array(token_id, options.visible));
|
424
|
+
exchangeInjectContract.setQuant(quant);
|
425
|
+
return buildCommonTransaction(exchangeInjectContract, Transaction.Contract.ContractType.EXCHANGEINJECTCONTRACT, 'ExchangeInjectContract', options.Permission_id);
|
426
|
+
};
|
427
|
+
const buildExchangeWithdrawContract = (value, options) => {
|
428
|
+
const exchangeWithdrawContract = new ExchangeWithdrawContract();
|
429
|
+
const { owner_address, exchange_id, token_id, quant } = value;
|
430
|
+
exchangeWithdrawContract.setOwnerAddress(fromHexString(owner_address));
|
431
|
+
exchangeWithdrawContract.setExchangeId(exchange_id);
|
432
|
+
exchangeWithdrawContract.setTokenId(flexToUint8Array(token_id, options.visible));
|
433
|
+
exchangeWithdrawContract.setQuant(quant);
|
434
|
+
return buildCommonTransaction(exchangeWithdrawContract, Transaction.Contract.ContractType.EXCHANGEWITHDRAWCONTRACT, 'ExchangeWithdrawContract', options.Permission_id);
|
435
|
+
};
|
436
|
+
const buildExchangeTransactionContract = (value, options) => {
|
437
|
+
const exchangeTransactionContract = new ExchangeTransactionContract();
|
438
|
+
const { owner_address, exchange_id, token_id, quant, expected } = value;
|
439
|
+
exchangeTransactionContract.setOwnerAddress(fromHexString(owner_address));
|
440
|
+
exchangeTransactionContract.setExchangeId(exchange_id);
|
441
|
+
exchangeTransactionContract.setTokenId(flexToUint8Array(token_id, options.visible));
|
442
|
+
exchangeTransactionContract.setQuant(quant);
|
443
|
+
exchangeTransactionContract.setExpected(expected);
|
444
|
+
return buildCommonTransaction(exchangeTransactionContract, Transaction.Contract.ContractType.EXCHANGETRANSACTIONCONTRACT, 'ExchangeTransactionContract', options.Permission_id);
|
445
|
+
};
|
446
|
+
const buildUpdateSettingContract = (value, options) => {
|
447
|
+
const updateSettingContract = new UpdateSettingContract();
|
448
|
+
const { owner_address, contract_address, consume_user_resource_percent } = value;
|
449
|
+
updateSettingContract.setOwnerAddress(fromHexString(owner_address));
|
450
|
+
updateSettingContract.setContractAddress(fromHexString(contract_address));
|
451
|
+
updateSettingContract.setConsumeUserResourcePercent(consume_user_resource_percent);
|
452
|
+
return buildCommonTransaction(updateSettingContract, Transaction.Contract.ContractType.UPDATESETTINGCONTRACT, 'UpdateSettingContract', options.Permission_id);
|
453
|
+
};
|
454
|
+
const buildUpdateEnergyLimitContract = (value, options) => {
|
455
|
+
const updateEnergyLimitContract = new UpdateEnergyLimitContract();
|
456
|
+
const { owner_address, contract_address, origin_energy_limit } = value;
|
457
|
+
updateEnergyLimitContract.setOwnerAddress(fromHexString(owner_address));
|
458
|
+
updateEnergyLimitContract.setContractAddress(fromHexString(contract_address));
|
459
|
+
updateEnergyLimitContract.setOriginEnergyLimit(origin_energy_limit);
|
460
|
+
return buildCommonTransaction(updateEnergyLimitContract, Transaction.Contract.ContractType.UPDATEENERGYLIMITCONTRACT, 'UpdateEnergyLimitContract', options.Permission_id);
|
461
|
+
};
|
462
|
+
const buildAccountPermissionUpdateContract = (value, options) => {
|
463
|
+
const accountPermissionUpdateContract = new AccountPermissionUpdateContract();
|
464
|
+
const { owner_address, owner, witness, actives } = value;
|
465
|
+
accountPermissionUpdateContract.setOwnerAddress(fromHexString(owner_address));
|
466
|
+
const getType = (type) => {
|
467
|
+
// no type when permission_name is owner
|
468
|
+
if (isNaN(type))
|
469
|
+
return type === 'Active' ? 2 : type === 'Witness' ? 1 : 0;
|
470
|
+
return type;
|
471
|
+
};
|
472
|
+
const buildPermission = (data) => {
|
473
|
+
// no type when permission_name is owner
|
474
|
+
const permission = new Permission();
|
475
|
+
const { type, id, permission_name, threshold, parentId, operations, keys } = data;
|
476
|
+
permission.setType(getType(type));
|
477
|
+
permission.setId(id);
|
478
|
+
permission.setPermissionName(permission_name);
|
479
|
+
permission.setThreshold(threshold);
|
480
|
+
if (parentId) {
|
481
|
+
permission.setParentId(parentId);
|
482
|
+
}
|
483
|
+
if (operations) {
|
484
|
+
permission.setOperations(stringToUint8Array(operations));
|
485
|
+
}
|
486
|
+
if (keys) {
|
487
|
+
permission.setKeysList(keys.map((key) => {
|
488
|
+
const keyBuilder = new Key();
|
489
|
+
keyBuilder.setAddress(fromHexString(key.address));
|
490
|
+
keyBuilder.setWeight(key.weight);
|
491
|
+
return keyBuilder;
|
492
|
+
}));
|
493
|
+
}
|
494
|
+
return permission;
|
495
|
+
};
|
496
|
+
if (owner) {
|
497
|
+
accountPermissionUpdateContract.setOwner(buildPermission(owner));
|
498
|
+
}
|
499
|
+
if (witness) {
|
500
|
+
accountPermissionUpdateContract.setWitness(buildPermission(witness));
|
501
|
+
}
|
502
|
+
if (actives) {
|
503
|
+
if (Array.isArray(actives)) {
|
504
|
+
accountPermissionUpdateContract.setActivesList(actives.map((active) => buildPermission(active)));
|
505
|
+
}
|
506
|
+
else {
|
507
|
+
accountPermissionUpdateContract.setActivesList([buildPermission(actives)]);
|
508
|
+
}
|
509
|
+
}
|
510
|
+
return buildCommonTransaction(accountPermissionUpdateContract, Transaction.Contract.ContractType.ACCOUNTPERMISSIONUPDATECONTRACT, 'AccountPermissionUpdateContract', options.Permission_id);
|
511
|
+
};
|
512
|
+
const buildUpdateAssetContract = (value, options) => {
|
513
|
+
const updateAssetContract = new UpdateAssetContract();
|
514
|
+
const { owner_address, description, url, new_limit, new_public_limit } = value;
|
515
|
+
updateAssetContract.setOwnerAddress(fromHexString(owner_address));
|
516
|
+
if (description) {
|
517
|
+
updateAssetContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));
|
518
|
+
}
|
519
|
+
if (url) {
|
520
|
+
updateAssetContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));
|
521
|
+
}
|
522
|
+
if (new_limit) {
|
523
|
+
updateAssetContract.setNewLimit(new_limit);
|
524
|
+
}
|
525
|
+
if (new_public_limit) {
|
526
|
+
updateAssetContract.setNewPublicLimit(new_public_limit);
|
527
|
+
}
|
528
|
+
return buildCommonTransaction(updateAssetContract, Transaction.Contract.ContractType.UPDATEASSETCONTRACT, 'UpdateAssetContract', options.Permission_id);
|
529
|
+
};
|
530
|
+
const contractJsonToProtobuf = (contract, value, options) => {
|
531
|
+
switch (contract.type) {
|
532
|
+
case 'TransferContract':
|
533
|
+
return buildTransferContract(value, options);
|
534
|
+
case 'TransferAssetContract':
|
535
|
+
return buildTransferAssetContract(value, options);
|
536
|
+
case 'ParticipateAssetIssueContract':
|
537
|
+
return buildParticipateAssetIssueContract(value, options);
|
538
|
+
case 'TriggerSmartContract':
|
539
|
+
return buildTriggerSmartContract(value, options);
|
540
|
+
case 'FreezeBalanceContract':
|
541
|
+
return buildFreezeBalanceContract(value, options);
|
542
|
+
case 'UnfreezeBalanceContract':
|
543
|
+
return buildUnfreezeBalanceContract(value, options);
|
544
|
+
case 'WithdrawBalanceContract':
|
545
|
+
return buildWithdrawBalanceContract(value, options);
|
546
|
+
case 'FreezeBalanceV2Contract':
|
547
|
+
return buildFreezeBalanceV2Contract(value, options);
|
548
|
+
case 'CancelAllUnfreezeV2Contract':
|
549
|
+
return buildCancelFreezeBalanceV2Contract(value, options);
|
550
|
+
case 'UnfreezeBalanceV2Contract':
|
551
|
+
return buildUnfreezeBalanceV2Contract(value, options);
|
552
|
+
case 'DelegateResourceContract':
|
553
|
+
return buildDelegateResourceContract(value, options);
|
554
|
+
case 'UnDelegateResourceContract':
|
555
|
+
return buildUnDelegateResourceContract(value, options);
|
556
|
+
case 'WithdrawExpireUnfreezeContract':
|
557
|
+
return buildWithdrawExpireUnfreezeContract(value, options);
|
558
|
+
case 'WitnessCreateContract':
|
559
|
+
return buildCreateWitness(value, options);
|
560
|
+
case 'VoteWitnessContract':
|
561
|
+
return buildVoteWitnessAccount(value, options);
|
562
|
+
case 'CreateSmartContract':
|
563
|
+
return buildCreateSmartContract(value, options);
|
564
|
+
case 'ClearABIContract':
|
565
|
+
return buildClearABIContract(value, options);
|
566
|
+
case 'UpdateBrokerageContract':
|
567
|
+
return buildUpdateBrokerageContract(value, options);
|
568
|
+
case 'AssetIssueContract':
|
569
|
+
return buildAssetIssueContract(value, options);
|
570
|
+
case 'AccountCreateContract':
|
571
|
+
return buildAccountCreateContract(value, options);
|
572
|
+
case 'AccountUpdateContract':
|
573
|
+
return buildAccountUpdateContract(value, options);
|
574
|
+
case 'SetAccountIdContract':
|
575
|
+
return buildSetAccountIdContract(value, options);
|
576
|
+
case 'ProposalCreateContract':
|
577
|
+
return buildProposalCreateContract(value, options);
|
578
|
+
case 'ProposalDeleteContract':
|
579
|
+
return buildProposalDeleteContract(value, options);
|
580
|
+
case 'ProposalApproveContract':
|
581
|
+
return buildVoteProposalContract(value, options);
|
582
|
+
case 'ExchangeCreateContract':
|
583
|
+
return buildExchangeCreateContract(value, options);
|
584
|
+
case 'ExchangeInjectContract':
|
585
|
+
return buildExchangeInjectContract(value, options);
|
586
|
+
case 'ExchangeWithdrawContract':
|
587
|
+
return buildExchangeWithdrawContract(value, options);
|
588
|
+
case 'ExchangeTransactionContract':
|
589
|
+
return buildExchangeTransactionContract(value, options);
|
590
|
+
case 'UpdateSettingContract':
|
591
|
+
return buildUpdateSettingContract(value, options);
|
592
|
+
case 'UpdateEnergyLimitContract':
|
593
|
+
return buildUpdateEnergyLimitContract(value, options);
|
594
|
+
case 'AccountPermissionUpdateContract':
|
595
|
+
return buildAccountPermissionUpdateContract(value, options);
|
596
|
+
case 'UpdateAssetContract':
|
597
|
+
return buildUpdateAssetContract(value, options);
|
598
|
+
}
|
599
|
+
};
|
600
|
+
const txJsonToPb = (transaction) => {
|
601
|
+
const rawData = transaction['raw_data'];
|
602
|
+
const contractJson = rawData.contract[0];
|
603
|
+
const data = contractJson.parameter.value;
|
604
|
+
const options = { Permission_id: contractJson.Permission_id, visible: transaction.visible };
|
605
|
+
const transactionObj = contractJsonToProtobuf(contractJson, data, options);
|
606
|
+
const rawDataObj = transactionObj.getRawData();
|
607
|
+
rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));
|
608
|
+
rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));
|
609
|
+
if (rawData.data) {
|
610
|
+
rawDataObj.setData(stringToUint8Array(rawData.data));
|
611
|
+
}
|
612
|
+
if (rawData.fee_limit) {
|
613
|
+
rawDataObj.setFeeLimit(rawData.fee_limit);
|
614
|
+
}
|
615
|
+
if (rawData.expiration) {
|
616
|
+
rawDataObj.setExpiration(rawData.expiration);
|
617
|
+
}
|
618
|
+
if (rawData.timestamp) {
|
619
|
+
rawDataObj.setTimestamp(rawData.timestamp);
|
620
|
+
}
|
621
|
+
transactionObj.setRawData(rawDataObj);
|
622
|
+
return transactionObj;
|
623
|
+
};
|
624
|
+
exports.txJsonToPb = txJsonToPb;
|
625
|
+
const txJsonToPbWithArgs = (transaction, args = {}, options = {}) => {
|
626
|
+
const rawData = transaction['raw_data'];
|
627
|
+
const contractJson = rawData.contract[0];
|
628
|
+
const transactionObj = contractJsonToProtobuf(contractJson, args, {
|
629
|
+
Permission_id: args?.Permission_id,
|
630
|
+
});
|
631
|
+
const rawDataObj = transactionObj.getRawData();
|
632
|
+
rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));
|
633
|
+
rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));
|
634
|
+
// for memo
|
635
|
+
if (options.data) {
|
636
|
+
rawDataObj.setData(stringToUint8Array(options.data.replace(/^0x/, '')));
|
637
|
+
}
|
638
|
+
if (options.fee_limit || args.fee_limit) {
|
639
|
+
rawDataObj.setFeeLimit(options.fee_limit || args.fee_limit);
|
640
|
+
}
|
641
|
+
if (rawData.expiration) {
|
642
|
+
rawDataObj.setExpiration(rawData.expiration);
|
643
|
+
}
|
644
|
+
if (rawData.timestamp) {
|
645
|
+
rawDataObj.setTimestamp(rawData.timestamp);
|
646
|
+
}
|
647
|
+
transactionObj.setRawData(rawDataObj);
|
648
|
+
return transactionObj;
|
649
|
+
};
|
650
|
+
exports.txJsonToPbWithArgs = txJsonToPbWithArgs;
|
651
|
+
const compareTransaction = (transaction, transactionPb) => {
|
652
|
+
const rawDataBytes = transactionPb.getRawData().serializeBinary();
|
653
|
+
const rawDataHex = (0, bytes_js_1.byteArray2hexStr)(rawDataBytes);
|
654
|
+
const txID = (0, ethersUtils_js_1.sha256)(rawDataBytes);
|
655
|
+
return (rawDataHex.toLowerCase() === transaction.raw_data_hex.toLowerCase() &&
|
656
|
+
txID.replace(/^0x/, '').toLowerCase() === transaction.txID.replace(/^0x/, '').toLowerCase());
|
657
|
+
};
|
658
|
+
const txPbToRawDataHex = (pb) => {
|
659
|
+
return (0, bytes_js_1.byteArray2hexStr)(pb.getRawData().serializeBinary());
|
660
|
+
};
|
661
|
+
exports.txPbToRawDataHex = txPbToRawDataHex;
|
662
|
+
const txCheck = (transaction) => {
|
663
|
+
const transactionPb = txJsonToPb(transaction);
|
664
|
+
return compareTransaction(transaction, transactionPb);
|
665
|
+
};
|
666
|
+
exports.txCheck = txCheck;
|
667
|
+
const txCheckWithArgs = (transaction, args, options) => {
|
668
|
+
const transactionPb = txJsonToPbWithArgs(transaction, args, options);
|
669
|
+
return compareTransaction(transaction, transactionPb);
|
670
|
+
};
|
671
|
+
exports.txCheckWithArgs = txCheckWithArgs;
|
672
|
+
const txPbToTxID = (transactionPb) => {
|
673
|
+
const rawDataBytes = transactionPb.getRawData().serializeBinary();
|
674
|
+
const txID = (0, ethersUtils_js_1.sha256)(rawDataBytes);
|
675
|
+
return txID;
|
676
|
+
};
|
677
|
+
exports.txPbToTxID = txPbToTxID;
|
678
|
+
//# sourceMappingURL=transaction.js.map
|