Interact with NameSky contracts
pnpm add namesky-sdk
import { initNameSky, NameSkySigner, Amount, MultiSendAccount } from 'namesky-sdk';
const account = MultiSendAccount.new(connection, 'alice.near');
const namesky = await initNameSky({ signer: NameSkySigner.fromAccount(account) });
import { initNameSky, NameSkySigner, Amount, setupMultiSendWalletSelector } from 'namesky-sdk';
const selector = await setupMultiSendWalletSelector({
network: 'mainnet',
modules: [
/* wallet modules */
],
});
const namesky = await initNameSky({ signer: NameSkySigner.fromWalletSelector(selector) });
// Registrant is the account that you want to mint as NameSky NFT. (e.g. star.near)
await namesky.setRegistrantKey('star.near', KeyPair.fromString('ed25519:<private key>'));
await namesky.postMint('star.near');
await namesky.waitMintCompleted('star.near');
await namesky.coreContract.nftRedeem({ tokenId: 'star.near', publicKey: 'ed25519:<public key>' });
await namesky.marketplaceContract.createListing({ tokenId: 'star.near', price: Amount.parse(100, 'NEAR') });
await namesky.marketplaceContract.updateListing({ tokenId: 'star.near', newPrice: Amount.parse(200, 'NEAR') });
await namesky.marketplaceContract.removeListing({ tokenId: 'star.near' });
await namesky.marketplaceContract.buyListing({ tokenId: 'star.near' });
await namesky.marketplaceContract.createOffering({ tokenId: 'moon.near', price: Amount.parse(30, 'NEAR') });
await namesky.marketplaceContract.updateOffering({ tokenId: 'moon.near', newPrice: Amount.parse(50, 'NEAR') });
await namesky.marketplaceContract.removeOffering({ tokenId: 'moon.near' });
await namesky.marketplaceContract.acceptOffering({ tokenId: 'star.near', buyerId: 'bob.near' });