MAPO Developer Docs
LearnDevelopRunWhitePaperBRC-201
English
English
  • Overview
  • Learn
    • About MAP Protocol
      • Background
      • Introduction of MAP Protocol
      • History of MAP Protocol
    • Comparison with other cross-chain models
      • MAP Protocol vs Cosmos & Polkadot
      • MAP vs other cross-chain solutions without relay chain
    • Technical Mechanism
      • MAP Protocol's Technical Mechanism
      • Three-layer Architecture
      • MAP Protocol Layer
        • Concept
        • Isomorphism with All Chains
        • Verification & Maintenance Network
      • MAP Omnichain Service (MOS) Layer
      • MAPO Application Layer
      • Peer-to-Peer Cross-chain Technology with ZK-enabled Light Clients
      • Interact with Bitcoin
    • Gas Fee Model
    • DAO
    • Construction of MAP Protocol
      • Developers
      • Validators
      • Maintainers
      • Messengers
      • Liquidity providers
      • End users
    • Tokenomics
    • Purchase $MAP
  • Develop
    • MAP Relay Chain
      • Getting Started
        • Build
        • Make Private Chain
        • How To Vote
        • How To Withdraw
        • Integrate an Exchange
        • Integrate MAP Relay Chain with EVM-Compatible Chains
      • Consensus
        • Overview
        • Proof-of-Stake
        • Validator
          • Validator
          • Locked MAP
        • Election
        • Rewards
        • Aggregated Seal
      • Contracts
        • Precompiled Contracts
        • Genesis Contracts
          • ABI
            • AccountsABI
            • ElectionABI
            • EpochRewardsABI
            • LockedGoldABI
            • ValidatorsABI
          • Deploy
      • Marker
        • Genesis
        • Validator
        • Vote
        • ContractOwner
        • Common
      • Account-Abstraction
    • Light Client
      • Verification based on Light Client
      • MAPO Light Client
        • EVM Chains
        • Near
      • Light Clients
        • Client Manager
        • BNB Smart Chain
        • Near Protocol
        • Polygon(Matic)
        • Ethereum 2.0
        • Klaytn
        • Conflux)
      • Maintainer
    • MAP Omnichain Service (MOS)
      • MOS Message Guides
        • How It Works
        • How To Use
        • EVM Chains Contract
      • MCS Guides
        • How It Works
        • How To Use
          • How To On Evm Chains
          • How To On Near Protocol
        • Relay Chain Contract
        • EVM Chains Contract
        • Near Protocol Contract
      • Messenger
      • API
    • OmniChain Examples
      • OmniApp
      • OmniDictionary
    • API & SDK
      • Butter SDK
      • Atlas JSON RPC
      • Atlas Consensus API
      • MAP Scan API
    • Connected Chains and Corresponding Addresses
  • Run
    • How To Become A New Validator
    • How To Become A New Validator[advanced]
    • Withdraw
Powered by GitBook
On this page
  • How To withdraw voting MAP
  • How To withdraw Locked MAP

Was this helpful?

  1. Develop
  2. MAP Relay Chain
  3. Getting Started

How To Withdraw

How To withdraw voting MAP

Introduce

When you use the vote command to vote, you're voting status is pending. Only when the last block of the current epoch is generated, your voting status will automatically change to active。 Next, follow this document, and you will withdraw your vote

How To withdraw pending vote

Because your current vote is to contribute to the validator(in the next epoch), so your voting MAP will go through two states the pending and the active state.

So, You can use getPendingVotesForValidatorByAccount command to check whether you have inactive MAP

For Example

./marker getPendingVotesForValidatorByAccount --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --rpcaddr http://127.0.0.1:7445

INFO [07-07|13:32:03.891] === getPendingVotesForValidatorByAccount === admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-07|13:32:03.894] PendingVotes                             balance=100,000,000,000,000,000,000,000

If your voting MAP is in pending, you can use 'revokePending' command to withdraw your pending voting MAP.

For Example

./marker revokePending --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --rpcaddr http://127.0.0.1:7445 --lockedNum 100000 --target 0x078F684c7d3bf78BDbe8bEf93E56998442dc8099

INFO [07-08|02:39:49.006] === revokePending ===                    admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|02:39:49.028] TxInfo                                   func=sendContractTransaction TX data nonce =14  gasLimit =4,500,000  gasPrice =101,000,000,000  chainID =29088
INFO [07-08|02:39:49.029] Please waiting                           func=getResult                txHash =0x9b0c2bedf7a0fe1b29f698ac069c6f549073241bb08932f9592132908596989b
INFO [07-08|02:39:50.839] Transaction Success                      func=queryTx                 block Number=478,705

How To withdraw active vote

If you're voting MAP is in active, you can use revokeActive command to withdraw your active voting MAP. If you perform this step, the votes you withdraw will lose the corresponding reward.

First, you can use the getActiveVotesForValidatorByAccount command to see how many active votes you have

For Example

./marker getActiveVotesForValidatorByAccount --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --rpcaddr http://127.0.0.1:7445 --target 0x078F684c7d3bf78BDbe8bEf93E56998442dc8099

INFO [07-08|03:45:18.228] === getActiveVotesForValidatorByAccount === admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|03:45:18.230] ActiveVotes                              balance=304,805,454,545,461,535,206,581

withdraw active vote

For Example

./marker revokeActive --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --rpcaddr http://127.0.0.1:7445 --target 0x078F684c7d3bf78BDbe8bEf93E56998442dc8099 --lockedNum  100000

INFO [07-08|05:47:48.065] === revokeActive ===                     admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|05:47:48.088] TxInfo                                   func=sendContractTransaction TX data nonce =15  gasLimit =4,500,000  gasPrice =101,000,000,000  chainID =29088
INFO [07-08|05:47:48.089] Please waiting                           func=getResult                txHash =0x24e55381f755affdc1e6916b8dbc6fa431623181490731dc77e18e01b26db0df
INFO [07-08|05:47:51.709] Transaction Success                      func=queryTx                 block Number=480,961

Then you can also use the getActiveVotesForValidatorByAccount command to confirm whether the revoke is successful

be careful : Both of revokePending and revokeActive command will put the voting MAP turn into nonvoting MAP

Now your voting MAP state has changed from pending state or active state to locking state.

How To withdraw Locked MAP

Step 1: unlock

You can use the getAccountNonvotingLockedGold command to see how many nonvoting maps you have

For Example

/marker getAccountNonvotingLockedGold --rpcaddr http://127.0.0.1:7445 --target 0x078F684c7d3bf78BDbe8bEf93E56998442dc8099

INFO [07-08|06:13:47.791] === getAccountNonvotingLockedGold ===    admin=0x0000000000000000000000000000000000000000 target=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|06:13:47.793] result                                   lockedGold=800,000,000,000,000,000,000,000

Map chain implements an unlocking period, a delay of 60 days after making a request to unlock Locked MAP before it can be recovered from the escrow.

Unlocks MAP, which can be withdrawn after the unlocking period. Unlocked MAP will appear as a "pending withdrawal" until the unlocking period is over, after which it can be withdrawn via "withdraw" command.

If you are a validator you will not be able to unlock 1000,000 MAP that necessary pledge as validator.

For Example

./marker unlockMap --rpcaddr http://127.0.0.1:7445 --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --lockedNum 100000

INFO [07-08|06:30:08.880] === unLock validator gold ===
INFO [07-08|06:30:08.880] unLock validator gold                    amount=1,000,000,000,000,000,000,000 admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|06:30:08.903] TxInfo                                   func=sendContractTransaction TX data nonce =19  gasLimit =4,500,000  gasPrice =101,000,000,000  chainID =29088
INFO [07-08|06:30:08.904] Please waiting                           func=getResult                txHash =0x42fca349f68c7018577f9f78e7b7560e12954c273bbb3fd1fe1cf88f127f2b01
INFO [07-08|06:30:11.117] Transaction Success                      func=queryTx                 block Number=481,469

You can use getPendingWithdrawals command to view the map that can be withdrawn at present

For Example

./cmd/marker/marker getPendingWithdrawals --rpcaddr http://127.0.0.1:7445 --target 0x19b375ebb9ee1b21a592a933c6383df49380046d

INFO [07-08|06:25:27.544] === getPendingWithdrawals ===            admin=0x0000000000000000000000000000000000000000 target=0x19b375EBB9eE1B21A592A933c6383Df49380046D
INFO [07-08|06:25:27.546] result:                                  index=0 values=10,000,000,000,000,000,000,000 timestamps=1,658,286,912

Timestamps is the time you can withdraw, in seconds

Step 2:withdraw

Withdraws MAP that has been unlocked after the unlocking period has passed. this step equivalent to withdrawing the money you locked in the smart contract to your account address.

At this step, the MAP you locked has been transferred to your account address. You can inquire by yourself.

For Example

./marker withdrawMap --rpcaddr http://127.0.0.1:7445 --keystore ./UTC--2022-07-01T04-02-22.985282926Z--078f684c7d3bf78bdbe8bef93e56998442dc8099 --withdrawIndex 0

INFO [07-08|06:32:04.394] === withdraw validator gold ===          admin=0x078F684c7d3bf78BDbe8bEf93E56998442dc8099
INFO [07-08|06:32:04.406] TxInfo                                   func=sendContractTransaction TX data nonce =20  gasLimit =4,500,000  gasPrice =101,000,000,000  chainID =29088
INFO [07-08|06:32:04.408] Please waiting                           func=getResult                txHash =0x4d874ff5792585ed91ad98379bf5243ff3383218a43967c3b9c5d1d633dc2340
INFO [07-08|06:32:06.218] Transaction Success                      func=queryTx                 block Number=481,492

After withdraw, you can check your balance, Map recommends that you use RPC interface.

For Example

curl --location --request POST 'http://18.142.54.137:7445' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": [
        "0x19b375ebb9ee1b21a592a933c6383df49380046d",
        "latest"
    ],
    "id": 1
}'
PreviousHow To VoteNextIntegrate an Exchange

Last updated 2 years ago

Was this helpful?

Here are the details of these two commands please click or to see.

the next step is same to

You can only unlock your nonvoting MAP,if you want to cancel your voting MAP please to Reference

You need unlock command to perform unlock operations,more detail about unlock command please to see .

You need withdraw command to perform withdraw operations,more detail about withdraw command please to see .

How To withdraw Locked MAP
How To withdraw voting MAP
revokePending
revokeActive
this
this