معرفی شرکت ها


dsc-python-sdk-1.1.6


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

-
ویژگی مقدار
سیستم عامل -
نام فایل dsc-python-sdk-1.1.6
نام dsc-python-sdk
نسخه کتابخانه 1.1.6
نگهدارنده []
ایمیل نگهدارنده []
نویسنده DecimalTeam
ایمیل نویسنده -
آدرس صفحه اصلی https://bitbucket.org/decimalteam/dsc-python-sdk
آدرس اینترنتی https://pypi.org/project/dsc-python-sdk/
مجوز -
# Decimal Python SDK Check out these links: - [Decimal SDK docs](https://help.decimalchain.com/api-sdk/). - [Decimal Console site](https://console.decimalchain.com/). ## Wallet API ### Generate new wallet ```python from dsc_sdk import Wallet wallet = Wallet() ``` ### Generate wallet from mnemonic* *if no mnemonic provided Wallet() will create instance with autogenerated mnemonic ```python from dsc_sdk import Wallet wallet = Wallet('erase august mask elevator sand picture north there apple equal anchor target...') ``` ### Get wallet address ```python from dsc_sdk import Wallet wallet = Wallet() wallet.get_address() # returns wallet address wallet.get_mnemonic() # returns wallet mnemonic ``` ## Get DecimalAPI to perform transactions To initiate api you have to pass address of the gateway for network you will work with ```python from dsc_sdk import DscAPI # or you can use dsc_sdk.MAINNET_GATE, TESTNET_GATE, DEVNET_GATE api = DscAPI("https://devnet-gate.decimalchain.com/api") # read chain id & base coin denomination api.get_parameters() print(api.get_chain_id()) print(api.get_base_denom()) ``` ## API usage After you initialized api instance, you can use its` broadcast() method to send prepared transaction. Transaction creation examples can be found in this file. ```python from dsc_sdk import DscAPI api = DscAPI("https://devnet-gate.decimalchain.com/api") api.broadcast(prepared_transaction_bytes) ``` ## Build and send transaction ```python # all Msg* functions is defined in tx_types.py from dsc_sdk import DscAPI, Wallet, Transaction, MsgSendCoin, ... # helper functions to convert integer values to valid blockchain amounts from dsc_sdk import ether_to_wei, finney_to_wei ##### 1. initialize api # You can also use constants # MAINNET_GATE, TESTNET_GATE, DEVNET_GATE and MAINNET_WEB3, TESTNET_WEB3, DEVNET_WEB3 api = DscAPI("https://devnet-gate.decimalchain.com/api", "https://devnet-val.decimalchain.com/web3/") # or, if you don't want to use web3 from API api = DscAPI("https://devnet-gate.decimalchain.com/api") api.get_parameters() ##### 2. create wallet and bind it to current blockchain wallet = Wallet(mnemonic1) an, seq = api.get_account_number_and_sequence(wallet.get_address()) wallet.set_account_number(an) wallet.set_sequence(seq) wallet.set_chain_id(api.get_chain_id()) ##### 3. create and sign transaction # create transaction message # sender and recipient must be valid bech32 address # like d01... msg = MsgSendCoin(sender, recipient, coin_denom, ether_to_wei(1)) tx = Transaction.build_tx(msg) # optional: set memo, set custom coin fee... tx.set_memo("hello from python") tx.set_fee("initiald", ether_to_wei(1)) # calculate_fee calculates fee in specified denom and set it # wallet is used for signing and for right transaction length tx.calculate_fee(wallet, "initiald", api) # sign transaction and get transaction bytes to send tx_bytes = tx.sign(wallet) ##### 4. send transaction and examine result txres = api.broadcast(tx_bytes) print(txres.hash, txres.code, txres.codespace) ``` ## Known transaction message types (constructors) NOTE: - `sender` and `recipient` must be valid bech32 addresses with `d0` prefix - `validator...` must be valid bech32 addresses with `d0valoper` prefix - `amount` must be integer value in string representation ### Coin module contructors - `MsgCreateCoin(sender: str, denom: str, title: str, crr: int, initial_volume: str, initial_reserve: str, limit_volume: str, identity: str)` (Message to create custom coin) - `denom` - short ticket for coin, first symbol must be letter, others must be letters and digits, up to 10 symbols - `crr` - constant reserve ratio, integer value between 10 and 100 - `initial_volume`, `initial_reserve`, `limit_volume` - big integers as string, inital amount of custom coin, initial reserve in base coin, limit for custom coin amount - `MsgUpdateCoin(sender: str, denom: str, limit_volume: str, identity: str)` (Message to update custom coin limit volume and identity, only creator can update coin, limit must be greater than current volume) - `MsgBuyCoin(sender: str, denom_to_buy: str, amount_to_buy: str, denom_to_sell: str, max_amount_to_sell: str)` (Message to buy coin) - `MsgSellCoin(sender: str, denom_to_sell: str, amount_to_sell: str, denom_to_buy: str, min_amount_to_buy: str)` (Message to sell coin) - `MsgSendCoin(sender: str, recipient: str, denom: str, amount: str)` (Message to send coin from sender to recipient) - `MsgMultiSendCoin(sender: str, sends: List[coin_tx.MultiSendEntry]), MultiSendEntry(recipient: str, denom: str, amount: str)` (Message to send possible different coins for sender to multiple recipients) - `MsgBurnCoin(sender: str, denom: str, amount: str)` (Message to burn coin volume (not reserve), coin will be substracted from sender balance) - `MsgRedeemCheck(sender: str, check: str, proof: str)` (Message to redeem check) - `check` - base58 encoded check bytes - `proof` - password for check helper to send all coins - `BuildSendAllCoin(signer: Wallet, api, recipient: str, coin_denom: str) -> bytes` (return signed transaction bytes) - `BuildSellAllCoin(signer: Wallet, api, recipient: str, coin_sell: str, coin_buy: str) -> bytes` (return signed transaction bytes) ### Multisig module contructors - `MsgCreateWallet(sender: str, owners: List[str], weights: List[int], threshold: int)` (Message to create multisig wallet) - `owners` - list of valid account addresses - `weights` - voting weights of owners - `threshold` - threshold level to execute transaction - `MsgCreateTransaction(sender: str, wallet: str, msg)` (Message to create multisig transaction, sender must be one of wallets owner) - `msg` - result of any Msg* constructor - `MsgSignTransaction(sender: str, id: str)` (Message to sign, sender must be one of wallets owner) - `id` - multisig transaction id, bech32 value with prefix `d0mstx` ### NFT module constructors - `MsgMintToken(sender: str, denom: str, token_id: str, token_uri: str, allow_mint: bool, recipient: str, quantity: int, reserve_denom: str, reserve_amount: str)` (Message to mint NFT token) - `denom` - name of NFT collection - `token_id` - blockchain unique token identifier - `token_uri` - blockchain unique URI - `allow_mint` - allow to mint subtoken - `recipient` - recipient of NFT subtokens - `quantity` - amount of NFT subtokens to mint - `reserve_denom` - denom of coin to reserve subtokens - `reserve_amount` - amount of coin to reserve subtokens PER ONE SUBTOKEN - `MsgUpdateToken(sender: str, token_id: str, token_uri: str)` (Message to update token URI, only creator can do that) - `MsgUpdateReserve(sender: str, token_id: str, sub_token_ids: List[int], reserve_denom: str, reserve_amount: str)` (Message to update subtokens reserve, only creator can do that) - `MsgSendToken(sender: str, recipient: str, token_id: str, sub_token_ids: List[int])` (Message to send subtokens from sender to recipient) - `MsgBurnToken(sender: str, token_id: str, sub_token_ids: List[int])` (Message to burn subtokens, only creator can do that, subtokens reserve will be return to creator) ### Swap module constructors - `MsgInitializeSwap(sender: str, recipient: str, amount: str, token_symbol: str, transaction_number: str, from_chain: int, dest_chain: int)` (Message to initialize coin swap from one blockchain to other) - `recipient` - address in other blockchain - `amount` - amount of coin/token - `token_symbol` - coin denom/token symbol - `transaction number` - unique transaction number - `from_chain` - source blockchain id in swap chains records - `dest_chain` - desctination blockchain id in swap chains records ### Validator module constructors - `MsgCreateValidator(operator_address: str, reward_address: str, pubkey: bytes, moniker: str, identity: str, website: str, security_contact: str, details: str, commission: str, stake_denom: str, stake_amount: str)` (Message to create validator) - `operator_address` - sender address encoded as bech32 with prefix `d0valoper` - `reward_address` - address to receive validator rewards, bech32 address with prefix `d0` - `pubkey` - node public key bytes - `moniker, indentity, website, security_contact, details` - validator description - `commission` - part of rewards to send to `reward_address`, must be string representation of floating point value between 0.0 and 1.0 - `stake_denom, stake_amount` - creator initial coin stake - `MsgEditValidator(operator_address: str, reward_address: str, moniker: str, identity: str, website: str, security_contact: str, details: str)` (Message to change validator reward address, description) - `MsgSetOnline(validator: str)` (Message to set validator online) - `MsgSetOffline(validator: str)` (Message to set validator offline) - `MsgDelegate(delegator: str, validator: str, coin_denom: str, coin_amount: str)` (Message to delegate coin to validator) - `MsgDelegateNFT(delegator: str, validator: str, token_id: str, sub_token_ids: List[int])` (Message to delegate NFT subtokens to validator) - `MsgRedelegate(delegator: str, validator_src: str, validator_dst: str, coin_denom: str, coin_amount: str)` (Message to redelegate coins from one validator to other) - `MsgRedelegateNFT(delegator: str, validator_src: str, validator_dst: str, token_id: str, sub_token_ids: List[int])` (Message to redelegate NFT subtokens from one validator to other) - `MsgUndelegate(delegator: str, validator: str, coin_denom: str, coin_amount: str)` (Message to undelegate coin from validator) - `MsgUndelegateNFT(delegator: str, validator: str, token_id: str, sub_token_ids: List[int])` (Message to undelegate NFT subtokens from validator) - `MsgCancelRedelegation(delegator: str, validator_src: str, validator_dst: str, creation_height: int, coin_denom: str, coin_amount: str)` (Message to cancel coin redelegation) - `MsgCancelRedelegationNFT(delegator: str, validator_src: str, validator_dst: str, creation_height: int, token_id: str, sub_token_ids: List[int])` (Message to cancel NFT subtoken redelegation) - `MsgCancelUndelegation(delegator: str, validator: str, creation_height: int, coin_denom: str, coin_amount: str)` (Message to cancel coin undelegation) - `MsgCancelUndelegationNFT(delegator: str, validator: str, creation_height: int, token_id: str, sub_token_ids: List[int])` (Message to cancel NFT subtokens undelegation) ## Known API query methods ``` get_account_balances(self, address: str) -> Dict[str, str] get_account_erc_balances(self, hex_address: str) -> List[ERCBalance] get_erc20_tokens(self, limit=10, offset=0) ``` ## Helper functions - `ether_to_wei` : convert integer value to valid amount representation ( * 10^18) - `finney_to_wei` : convert integer value to valid amount representation ( * 10^15) - `wei_to_ether` : convert amount string representation to float value ( / 10^18) - `check_address_validity` : check bech32 address; return true if it's valid bech32 representation - `d0_to_hex`, `hex_to_d0` : convert DSC address ith prefix d0 to/from Ethereum hex presentation


نیازمندی

مقدار نام
==1.5.1 asn1crypto
==2.0.0 base58
==1.0.2 base58check
==1.2.0 bech32
==3.3 bip32
==1.5.2 cached-property
==1.14.3 cffi
==3.0.4 chardet
==17.0.0 coincurve
==0.16.1 ecdsa
==0.3.1 eth-hash
==2.2.2 eth-typing
==1.10.0 eth-utils
==2.3.2 ethereum
==0.18.2 future
==2.10 idna
==0.20 mnemonic
==0.4.3 mypy-extensions
==1.3 pbkdf2
==5.1.0 py-ecc
==1.6.1 pyaes
==2.20 pycparser
==3.15.0 pycryptodome
==3.15.0 pycryptodomex
==0.1.27 pyethash
==2.25.0 requests
==3.19.5 protobuf
==5.31.1 web3


زبان مورد نیاز

مقدار نام
>=3.6 Python


نحوه نصب


نصب پکیج whl dsc-python-sdk-1.1.6:

    pip install dsc-python-sdk-1.1.6.whl


نصب پکیج tar.gz dsc-python-sdk-1.1.6:

    pip install dsc-python-sdk-1.1.6.tar.gz