@fioprotocol/fiosdk
Version:
The Foundation for Interwallet Operability (FIO) is a consortium of leading blockchain wallets, exchanges and payments providers that seeks to accelerate blockchain adoption by reducing the risk, complexity, and inconvenience of sending and receiving cryp
129 lines (101 loc) • 4.94 kB
text/typescript
/* tslint:disable:no-console */
import * as dotenv from 'dotenv'
import 'mocha'
import { RawAbiTests } from './common/raw-abi.spec';
import { WrongRequestsTests } from './common/wrong-requests.spec';
import { GenericActionsTests } from './common/generic-actions.spec';
import { AccountPermissionsTests } from './common/account-permissions.spec';
import { FioPermissionsTests } from './common/fio-permissions.spec';
import { VoteBlockProducerTests } from './common/vote-blockproducer.spec';
import { StakeTokensTests } from './common/stake-tokens.spec';
import { NftsTests } from './common/nfts.spec';
import { FioRequestApproveAndPayFundsTests } from './common/fio-request-approve-pay-funds.spec';
import { FioRequestCancelTests } from './common/fio-request-cancel.spec';
import {
FIOSDK,
} from '../src/FIOSDK';
import { defaultFee } from './constants';
import { FioRequestRejectTests } from './common/fio-request-reject.spec';
import { TransferTokensTests } from './common/transfer-tokens.spec';
import { RecordObtDataTests } from './common/record-obt-data.spec';
import { CheckTransactionTests } from './common/check-transaction.spec';
import { timeout, fetchJson } from './utils';
import { EncryptDecryptContentTests } from './common/encrypt-decrypt-content.spec';
import { FioRequestsWithDifferentEncryptKeysTests } from './common/fio-requests-with-different-encrypt-keys.spec';
dotenv.config({path: ['.env.test', '.env']})
/**
* Please set your private/public keys and existing fioAddresses
*/
const privateKey = process.env.PRIVATE_KEY as string
const publicKey = process.env.PUBLIC_KEY as string
const privateKey2 = process.env.PRIVATE_KEY_2 as string
const publicKey2 = process.env.PUBLIC_KEY_2 as string
const faucetPriv = process.env.FAUCET_PRIVATE_KEY as string
const faucetPub = process.env.FAUCET_PUBLIC_KEY as string
const testFioAddressName = process.env.TEST_FIO_ADDRESS_NAME as string
const testFioAddressName2 = process.env.TEST_FIO_ADDRESS_NAME_2 as string
const testFioDomainName = process.env.TEST_FIO_DOMAIN_NAME as string
/**
* Public Testnet API nodes can be found at: https://bpmonitor.fio.net/?chain=Testnet
*/
const baseUrls = ['https://test.fio.eosusa.io/v1/']
const proxyTpId = 'eosusa@fiotestnet';
let fioSdk: FIOSDK = new FIOSDK({ privateKey, publicKey, apiUrls: baseUrls, fetchJson })
let fioSdk2: FIOSDK = new FIOSDK({ privateKey: privateKey2, publicKey: publicKey2, apiUrls: baseUrls, fetchJson })
let fioSdkWithWrongBaseUrl: FIOSDK = new FIOSDK({ privateKey: privateKey2, publicKey: publicKey2, apiUrls: baseUrls, fetchJson })
before(async () => {
try {
const isAvailableResult = await fioSdk.genericAction('isAvailable', {
fioName: testFioAddressName,
})
if (!isAvailableResult.is_registered) {
await fioSdk.genericAction('registerFioAddress', {
fioAddress: testFioAddressName,
maxFee: defaultFee,
})
}
} catch (e) {
console.log(e)
}
try {
const isAvailableResult2 = await fioSdk2.genericAction('isAvailable', {
fioName: testFioAddressName2,
})
if (!isAvailableResult2.is_registered) {
await fioSdk2.genericAction('registerFioAddress', {
fioAddress: testFioAddressName2,
maxFee: defaultFee,
})
}
} catch (e) {
console.log(e)
}
const fioSdkFaucet = new FIOSDK({
privateKey: faucetPriv,
publicKey: faucetPub,
apiUrls: baseUrls,
fetchJson,
})
await fioSdkFaucet.transferTokens({
payeeFioPublicKey: publicKey,
amount: defaultFee * 4,
maxFee: defaultFee,
})
await timeout(4000)
})
RawAbiTests({ fioSdk });
WrongRequestsTests({ fioSdk, baseUrls, fioSdkWithWrongBaseUrl });
GenericActionsTests({ fioSdk, fioSdk2, publicKey, publicKey2, testFioDomainName, testFioAddressName });
FioPermissionsTests({ fioSdk, publicKey, publicKey2 });
AccountPermissionsTests({ fioSdk, fioSdk2, publicKey, publicKey2, testFioDomainName, testFioAddressName });
VoteBlockProducerTests({ fioSdk, publicKey, proxyTpId, testFioAddressName });
StakeTokensTests({ fioSdk, publicKey, testFioAddressName });
NftsTests({ fioSdk, testFioAddressName });
FioRequestApproveAndPayFundsTests({ fioSdk, fioSdk2, publicKey, publicKey2, testFioAddressName, testFioAddressName2 });
FioRequestCancelTests({ fioSdk2, testFioAddressName, testFioAddressName2 });
FioRequestRejectTests({ fioSdk, fioSdk2, testFioAddressName, testFioAddressName2 });
FioRequestsWithDifferentEncryptKeysTests({ baseUrls, faucetPriv, faucetPub });
RecordObtDataTests({ fioSdk, fioSdk2, publicKey, publicKey2, testFioAddressName, testFioAddressName2 });
TransferTokensTests({ fioSdk, fioSdk2, publicKey2 });
EncryptDecryptContentTests({ baseUrls });
CheckTransactionTests({ fioSdk2, testFioAddressName, testFioAddressName2 });