Initialize Near Stream

Let's suppose this multisig requires two of its member to confirm a request and multisigservices1 is an instance created for member1 and multisigservices2 is an instance created for member2. A native stream can be done in the following way.

const params: InitStreamParams = {
    canCancel: true,
    canUpdate: true,
    startTime: (nowInSec() + 15).toString(),
    endTime: (nowInSec() + 20).toString(),
    receiver: member2,
    streamRate: NearAmount.parse("0.001").toString(),
};

const payload = await multisigservices1.initStream(params);

const result = await wallet.signAndTransactions(payload);

Then to confirm the request by another member you need to retrieve the requestId from the result which can be done in the following way.

const successValue = (result[result.length - 1].status as FinalExecutionStatus).SuccessValue;
if (!successValue) throw new Error("successValue is missing");
const requestId = Number(Buffer.from(successValue, "base64").toString());

Then request can be confirmed by another member in the following way.

const confirmPayload = await multiSigService2.confirm({ requestId: Number(requestId) });
const result = await wallet.signAndTransactions(payload);

Last updated