지갑과 상호 작용
NEAR의 지갑은 웹 기반이기 때문에, 브라우저에서만 지갑 상호 작용이 가능합니다.
가장 자주 하는 작업은 로그인입니다. 애플리케이션을 인증하기 위해, 사용자는 지갑 페이지로 리디렉션됩니다. 사용자가 로그인하면 액세스 키가 브라우저의 로컬 스토리지에 저장됩니다. 액세스 키가 필요한 모든 다음 작업이 허용됩니다. In case a user needs to authorize a transaction that has a deposit attached, your user will be automatically redirected to the Wallet again.
지갑 연결 생성
지갑 연결에는 LocalStorage KeyStore
를 사용합니다.
- TestNet
- MainNet
const { connect, keyStores, WalletConnection } = nearAPI;
const connectionConfig = {
networkId: "testnet",
keyStore: new keyStores.BrowserLocalStorageKeyStore(),
nodeUrl: "https://rpc.testnet.near.org",
walletUrl: "https://testnet.mynearwallet.com/",
helperUrl: "https://helper.testnet.near.org",
explorerUrl: "https://testnet.nearblocks.io",
};
// connect to NEAR
const nearConnection = await connect(connectionConfig);
// create wallet connection
const walletConnection = new WalletConnection(nearConnection);
const { connect, keyStores, WalletConnection } = nearAPI;
const connectionConfig = {
networkId: "mainnet",
keyStore: new keyStores.BrowserLocalStorageKeyStore(),
nodeUrl: "https://rpc.mainnet.near.org",
walletUrl: "https://wallet.mainnet.near.org",
helperUrl: "https://helper.mainnet.near.org",
explorerUrl: "https://nearblocks.io",
};
// connect to NEAR
const nearConnection = await connect(connectionConfig);
// create wallet connection
const walletConnection = new WalletConnection(nearConnection);
Module browserConnect
Class WalletConnection
사용자에게 로그인 요청
먼저 WalletConnection을 생성한 다음, requestSignIn
를 호출합니다. 그러면 현재 페이지가 지갑 인증 페이지로 리디렉션됩니다. 성공 및 실패 리디렉션 URL을 구성할 수 있습니다.
이 작업은 브라우저의 로컬 스토리지에 저장될 액세스 키를 생성합니다. 선택적으로 액세스 키에 대해 허용할 methodNames
를 나열할 수도 있습니다. methodNames
를 지정하지 않거나 빈 배열을 전달하면, 모든 메서드를 호출할 수 있습니다(액세스 키는 모든 메서드를 호출할 수 있는 권한으로 생성됨).
// const walletConnection = new WalletConnection(nearConnection);
walletConnection.requestSignIn({
contractId: "example-contract.testnet.REPLACE_ME",
methodNames: [], // optional
successUrl: "REPLACE_ME://.com/success", // optional redirect URL on success
failureUrl: "REPLACE_ME://.com/failure", // optional redirect URL on failure
});
WalletConnection.requestSignIn
메서드
사용자 로그아웃
// const walletConnection = new WalletConnection(nearConnection);
walletConnection.signOut();
로그인 여부 확인
// const walletConnection = new WalletConnection(nearConnection);
if (walletConnection.isSignedIn()) {
// user is signed in
}
WalletConnection.isSignedId
메서드
지갑 계정 가져오기
사용자가 지갑에서 로그인한 계정을 가져옵니다.
계정 ID 가져오기(문자열)
// const walletConnection = new WalletConnection(nearConnection);
const walletAccountId = walletConnection.getAccountId();
WalletConnection.getAccountId
메서드
계정 객체 가져오기
// const walletConnection = new WalletConnection(nearConnection);
const walletAccountObj = walletConnection.account();
Method WalletConnection.account
Class ConnectedWalletAccount