UNPKG

vasku

Version:

TVM-Solidity contract development framework

41 lines (36 loc) 1.52 kB
import { type VaskuConfig } from '../config/types' import { type TonClient } from '@eversdk/core' import { type Giver } from '../../giver' import { GIVER } from '../config/types/giverLabels' import { GiverV2 } from '../../giver/samples/GiverV2' import giverSEKeys from './keys/giver.se.keys.json' import { GiverV3 } from '../../giver/samples/GiverV3' import { SafeMultisigWalletGiver } from '../../giver/samples/SafeMultisigWalletGiver' import safeMultisigWalletSEKeys from './keys/safeMultisigWallet.se.keys.json' import { createOrReadGlobalGiverKeys } from './createOrReadGlobalGiverKeys' export async function createGlobalGiver (config: VaskuConfig, network: string, client: TonClient): Promise<Giver> { const giver = config.networks[network].giver //////// // SE // //////// if (giver === GIVER.se.v2) return new GiverV2(giverSEKeys, { client }) if (giver === GIVER.se.v3) return new GiverV3(giverSEKeys, { client }) if (giver === GIVER.se.safeMultiSigWallet) return new SafeMultisigWalletGiver(safeMultisigWalletSEKeys, { client }) //////////// // Not SE // //////////// const keys = await createOrReadGlobalGiverKeys(config, network, client) if (giver === GIVER.v2) return new GiverV2(keys, { client }) if (giver === GIVER.v3) return new GiverV3(keys, { client }) if (giver === GIVER.safeMultiSigWallet) return new SafeMultisigWalletGiver(keys, { client }) ///////////// // Unknown // ///////////// throw new Error(`Giver "${giver}" is unknown`) }