@caict/bop-typescript-sdk
Version:
109 lines (96 loc) • 3.81 kB
text/typescript
import { SignerByBop } from "../signer";
import { ProviderByBop } from "../provider";
import { expect } from "chai";
import * as sinon from "sinon";
import {
CallContractResponse,
GetAccountBalanceResponse,
GetAccountIncreaseNonceResponse,
SignerSignResponse,
TestTransactionRequest,
TestTransactionResponse,
GetAccountResponse,
LedgerNumberResponse,
} from "../../../bop-sdk/proto/bop-sdk-interface";
import { BopInterface, Config } from "../../../bop/bop-base";
const apiKey = "xxx";
const apiSecret = "xxx";
describe("signer-test", () => {
let bopInterface: BopInterface;
let config: Config;
let signer: SignerByBop;
let provider: ProviderByBop;
beforeEach(() => {
config = new Config("https://bif-mainnet.bitfactory.cn", apiKey, apiSecret);
bopInterface = new BopInterface(config);
signer = new SignerByBop("your encprivate key");
provider = new ProviderByBop(bopInterface);
});
afterEach(() => {});
describe("signer test", () => {
it("signer.constructor invalid privateKey", async () => {
try {
let signer: SignerByBop = new SignerByBop("xxx");
} catch (error) {
expect(error).to.equal("invalid privateKey");
}
});
it("signer.constructor valid privateKey", async () => {
expect(signer.getAddress()).to.equal(
"did:bid:zfVHJnop875UMPmskam4JC4kLW4tAaDK",
);
expect(signer.getAddress()).to.equal(signer.address);
expect(signer.publicKey).to.equal(signer.publicKey);
});
it("signer.getBalance", async () => {
let signerWithProvider = signer.connect(provider);
let balance =
(await signerWithProvider.getBalance()) as GetAccountBalanceResponse;
console.log(balance);
expect(balance.errorCode).to.equal(0);
});
it("signer.getIncreaseNonce", async () => {
let signerWithProvider = signer.connect(provider);
let nonce =
(await signerWithProvider.getIncreaseNonce()) as GetAccountIncreaseNonceResponse;
console.log(nonce);
expect(nonce.errorCode).to.equal(0);
});
it("signer.getAccount", async () => {
let signerWithProvider = signer.connect(provider);
let account =
(await signerWithProvider.getAccount()) as GetAccountResponse;
console.log(account);
expect(account.errorCode).to.equal(0);
});
it("signer.getLedgerNumber", async () => {
let signerWithProvider = signer.connect(provider);
let number =
(await signerWithProvider.getLedgerNumber()) as LedgerNumberResponse;
console.log(number);
expect(number.errorCode).to.equal(0);
});
it("signer.signTransaction", async () => {
let signerWithProvider = signer.connect(provider);
let response = (await signerWithProvider.signTransaction(
"0x010203",
)) as SignerSignResponse;
console.log(response);
console.log(response.result?.publicKey);
expect(response.errorCode).to.equal(0);
});
it("signer.callContract", async () => {
let signerWithProvider = signer.connect(provider);
let response = (await signerWithProvider.callContract(
"did:bid:efBcAumwRYrESbpRVTo4J4vYqXXfqBzu",
'{"function":"balanceOf(address)","args":"did:bid:efBcAumwRYrESbpRVTo4J4vYqXXfqBzu","return":"returns(uint256)"',
)) as CallContractResponse;
console.log(response);
console.log(response.result?.queryRets[0]);
expect(response.errorCode).to.equal(0);
expect(response.result?.queryRets[0]?.result).to.equal(
'{"code":0,"data":"[0]","desc":"","evmcode":"0000000000000000000000000000000000000000000000000000000000000000","gasused":2767}',
);
});
});
});