@kadena/kadena-cli
Version:
Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)
37 lines • 1.45 kB
JavaScript
import { Pact, createClient, createSignWithKeypair, isSignedTransaction, } from '@kadena/client';
import { faucetContract } from '../contract/devnet-faucet.js';
import { DOMAIN, NETWORK_ID, SENDER_00 } from './constants.js';
export const deployFaucet = async ({ chainId, upgrade, namespace, }) => {
const transaction = Pact.builder
.execution(faucetContract)
.addData('init', !upgrade)
.addData('coin-faucet-namespace', namespace)
.addData('coin-faucet-admin-keyset-name', `${namespace}.admin-keyset`)
.addSigner(SENDER_00.publicKey)
.setMeta({
chainId,
gasPrice: 0.000001,
gasLimit: 70000,
ttl: 28800,
senderAccount: SENDER_00.accountName,
})
.setNetworkId(NETWORK_ID)
.createTransaction();
const signWithKeyPair = createSignWithKeypair([
{
publicKey: SENDER_00.publicKey,
secretKey: SENDER_00.secretKey,
},
]);
const signedTx = await signWithKeyPair(transaction);
if (!isSignedTransaction(signedTx)) {
throw new Error('Transaction is not signed');
}
const { submit, pollStatus } = createClient(({ chainId, networkId }) => {
return `${DOMAIN}/chainweb/0.0/${networkId}/chain/${chainId}/pact`;
});
const requestKeys = await submit(signedTx);
const result = await pollStatus(requestKeys);
return result;
};
//# sourceMappingURL=faucet.js.map