Skip to main content
ArcBlock Community

如何设置stake,使得解除质押后在一定时间后才能取回

shenxiuqiang
Support
chain-and-bridgeqa

如何设置stake,使得解除质押后在一定时间后才能取回,我设置revokeWaitingPeriod似乎没有作用,revoke后,可以马上claim取回,

javascript
const stakeToken = { address: env.tokenId, value: fromTokenToUnit(1, 18).toString() };

const stakeAsset = async () => {
  const { asset, staked, stakeAddress, stakeReciver } = await isStaked();
  if (staked) return;

  const from = wallet.address;
  const to = stakeReciver;
  const address = stakeAddress;
  let tx = await client.multiSignStakeTx({
    tx: {
      itx: {
        address: stakeAddress,
        receiver: to,
        locked: true,
        message: 'DID Mail Server Node Statk ',
        // revokeWaitingPeriod: 60 * 60 * 24 * 7,
        revokeWaitingPeriod: 60 * 2,
        slashers: [to],
        nonce: '',
        inputs: [
          {
            owner: from,
            assets: [asset],
            tokens: [stakeToken],
          },
        ],
      },
      signatures: [
        {
          signer: from,
          pk: wallet.publicKey,
        },
      ],
    },
    wallet,
  });

  tx = await client.signStakeTx({ tx, wallet });
  const hash = await client.sendStakeTx({ tx, wallet });
  return [hash, address];
};

7 replies

wangshijun2 years ago

就是通过 revokeWaitingPeriod 来控制,看你的代码设置的太短了。你可以把链上的 Stake 地址贴上来,我来诊断下。

shenxiuqiang2 years ago

这个单位是秒吗?

wangshijun2 years ago

revokeWaitingPeriod 是秒

shenxiuqiang2 years ago

stake:"revokeWaitingPeriod": 120

revoke时间:2024-08-28T01:09.811Z

claim时间: 2024-08-28T01:09.297Z

时间间隔5秒

wangshijun2 years ago

Stake 交易目前的执行逻辑:

Reply