當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript js.utils.signaturesToBytes方法代碼示例

本文整理匯總了TypeScript中@counterfactual/cf.js.utils.signaturesToBytes方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript js.utils.signaturesToBytes方法的具體用法?TypeScript js.utils.signaturesToBytes怎麽用?TypeScript js.utils.signaturesToBytes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在@counterfactual/cf.js.utils的用法示例。


在下文中一共展示了js.utils.signaturesToBytes方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: setCommitment

  /**
   * Sets the commitment at the end of a protocol's execution.
   * @param internalMessage
   * @param next
   * @param context
   * @throws Error if the counterparty's signature is not set
   */
  public async setCommitment(
    internalMessage: InternalMessage,
    next: Function,
    context: Context
  ) {
    let appId;
    const action: cf.legacy.node.ActionName = internalMessage.actionName;
    const operation = context.intermediateResults.operation!;
    let appCommitments: AppCommitments;

    const incomingMessage = this.incomingMessage(internalMessage, context);

    if (action === cf.legacy.node.ActionName.SETUP) {
      appId = internalMessage.clientMessage.multisigAddress;
    } else if (action === cf.legacy.node.ActionName.INSTALL) {
      const proposal = context.intermediateResults.proposedStateTransition!;
      appId = proposal.cfAddr;
    } else {
      appId = internalMessage.clientMessage.appId;
    }

    if (this.store.has(appId)) {
      appCommitments = AppCommitments.deserialize(appId, this.store.get(appId));
    } else {
      appCommitments = new AppCommitments(appId);
      this.appCount += 1;
      this.store.put(appId, Object(appCommitments.serialize()));
    }

    const signature = context.intermediateResults.signature!;

    const counterpartySignature = incomingMessage!.signature!;
    if (
      counterpartySignature === undefined ||
      cf.utils.signaturesToBytes(signature) ===
        cf.utils.signaturesToBytes(counterpartySignature)
    ) {
      // FIXME: these errors should be handled more gracefully
      // https://github.com/counterfactual/monorepo/issues/99
      throw Error(
        `Cannot make commitment for operation ${action}.
        The counterparty hasn't signed the commitment.`
      );
    }

    await appCommitments.addCommitment(action, operation, [
      signature,
      counterpartySignature
    ]);
    this.store.put(appId, Object(appCommitments.serialize()));
    next();
  }
開發者ID:cylof22,項目名稱:monorepo,代碼行數:59,代碼來源:test-commitment-store.ts

示例2: constructSetStateData

function constructSetStateData(signatures: ethers.utils.Signature[]): string {
  return constructContractCall(
    "proxyCall(address,bytes32,bytes)",
    TEST_NETWORK_CONTEXT.registryAddr,
    TEST_APP_INSTANCE.cfAddress(),
    constructContractCall(
      "setState(bytes32,uint256,uint256,bytes)",
      TEST_APP_STATE_HASH,
      TEST_LOCAL_NONCE,
      TEST_TIMEOUT,
      cf.utils.signaturesToBytes(...signatures)
    )
  );
}
開發者ID:cylof22,項目名稱:monorepo,代碼行數:14,代碼來源:set-state.spec.ts

示例3: constructMultisigExecTransaction

export function constructMultisigExecTransaction(
  operation: "delegatecall" | "call",
  to: string,
  value: string | number,
  transactionData: string,
  signatures: ethers.utils.Signature[]
): string {
  return constructContractCall(
    "execTransaction(address, uint256, bytes, uint8, bytes)",
    to,
    value,
    transactionData,
    operation === "delegatecall" ? 1 : 0,
    cf.utils.signaturesToBytes(...signatures)
  );
}
開發者ID:cylof22,項目名稱:monorepo,代碼行數:16,代碼來源:fixture.ts


注:本文中的@counterfactual/cf.js.utils.signaturesToBytes方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。