약속 기반 계약 근거, 지갑 근처 및 브라우저 용 RPC 클라이언트 근처. 이것은 블록 체인 근처와의 반응 통합을 용이하게하고 지갑과 계약을 설정하는 거대한 보일러 플레이트를 피하도록 설계되었습니다.
선적 서류 비치
view 위한 캐시 시스템 NPM 사용 :
# You can use any wallet selector version you want
npm install @wpdas/naxios @near-wallet-selector/[email protected]원사 사용 :
# You can use any wallet selector version you want
yarn add @wpdas/naxios @near-wallet-selector/[email protected]가까운 지갑 선택기 스타일을 가져옵니다. 앱은 지갑 선택기를 올바르게 렌더링해야합니다.
import '@near-wallet-selector/modal-ui/styles.css'지갑 및/또는 계약 API를 한 번에 제자리에 구축하는 것은 매우 쉽습니다. 봐 :
// web3Api.ts
import naxios from '@wpdas/naxios'
const naxiosInstance = new naxios ( {
rpcNodeUrl : 'https://free.rpc.fastnear.com' , // optional
contractId : CONTRACT_ID ,
network : 'testnet' ,
} )
/**
* NEAR Wallet API (Must be a single instance)
*/
export const walletApi = naxiosInstance . walletApi ( )
// Examples of contract API instance usage
/**
* Contract API
* This is going to use default contractId (CONTRACT_ID)
*/
export const contractApi = naxiosInstance . contractApi ( )
/**
* Another Contract API
*/
export const socialDBcontractApi = naxiosInstance . contractApi ( { contractId : 'v1.social08.testnet' } )
/**
* Greeting Contract API
*/
export const greetingContractApi = naxiosInstance . contractApi ( {
contractId : 'dev-1692221685438-15421910364142' ,
} )
/**
* NEAR RPC API
*/
export const rpcApi = naxiosInstance . rpcApi ( ) signInModal() 호출하여 가까운 지갑 선택기 모달을 열 수 있습니다.
import { walletApi } from './web3Api'
walletApi . signInModal ( ) 기본적으로 Naxios는 지갑을 연결하는 수단으로 @onear-Wallet-Selector/My-Near-Wallet 만 사용합니다. 그러나 다음과 같이 다른 지갑 선택기를 추가 할 수 있습니다.
npm install @near-wallet-selector/ledger @near-wallet-selector/my-near-wallet그런 다음 다음과 같이 naxius를 시작할 수 있습니다.
import naxios from '@wpdas/naxios'
import { setupMyNearWallet } from '@near-wallet-selector/my-near-wallet'
import { setupLedger } from '@near-wallet-selector/ledger'
const naxiosInstance = new naxios ( {
contractId : CONTRACT_ID ,
network : 'testnet' , // or mainnet, localnet
walletSelectorModules : [ setupMyNearWallet ( ) , setupLedger ( ) ] ,
} )
/**
* NEAR Wallet API (Must be a single instance)
*/
export const walletApi = naxiosInstance . walletApi ( )여기에 가까운 지갑 선택기를 찾으십시오 : 근처 지갑 선택기
view : 네트워크에서 정보를 검색하기 위해 읽기 전용 호출을 작성하십시오. 다음 매개 변수가 있습니다.method : 계약의 메소드 이름.props? : 계약 방법에 대한 args 있는 선택적 매개 변수.config? : 현재 이것은 useCache Prop 만 있습니다. USECACHE가 사실 일 때, 이것은 계약의 방법을 호출하는 대신 expired 캐시 된 데이터를 사용합니다.call : 계약 상태를 변경하는 메소드를 호출하십시오. 이것은 지불 할 수 있습니다. 다음 매개 변수가 있습니다.method : 계약의 메소드 이름props? : 트랜잭션이 성공한 후 사용자를 특정 페이지로 가져 가려면 계약 방법, gas , 첨부 할 수있는 가스, 첨부 된 deposit 및 callbackUrl 에 대한 args 가있는 선택적 매개 변수.callMultiple : 계약 상태를 변경하는 여러 메소드를 호출하십시오. 이것은 지불 할 수 있으며 다음의 매개 변수가 있습니다.transactionsList : 트랜잭션 소품 목록. buildTransaction(...) 사용하여 도움을 줄 수 있습니다callbackUrl? : 모든 트랜잭션이 성공한 후에 사용자를 데려 갈 페이지. accounts : 가입 계정.accountId : 계정 목록의 기본/첫 번째 가입 계정 ID.contractId : 계약 ID.initNear : 근처 블록 체인에 대한 연결을 초기화합니다. 계약 상호 작용이있을 때 자동으로 호출됩니다.network : 현재 네트워크 ( testnet , mainnet 또는 localnet ).recentlySignedInWallets : 최근 지갑에 서명 된 5의 ID-S를 반환합니다.selectedWalletId : 선택된 지갑 IDsignInModal : Signin 지갑 모달을 엽니 다.wallet : 지갑 인스턴스.walletSelector : WALLETSELECTOR 인스턴스. view 방법을 사용하는 것은 무료입니다.
import { greetingContractApi } from './web3Api'
// [free]
greetingContractApi . view < string > ( 'get_greeting' ) . then ( ( response ) => console . log ( response ) ) call 메소드에 대한 모든 요청에 대해 지불해야합니다. 이것은 데이터를 변경하여 블록 체인 내에 저장할 것입니다.
import { greetingContractApi } from './web3Api'
// Set greeting [payable]
const args : { message : 'Hi there!!!' }
greetingContractApi . call < string | undefined > ( 'set_greeting' , args ) . then ( ( response ) => console . log ( response || 'done!' ) ) call 뿐만 아니라 모든 요청에 대해 지불해야합니다. 이것은 데이터를 변경하여 블록 체인 내에 저장할 것입니다.
import { buildTransaction } from '@wpdas/naxios'
import { contractApi } from './web3Api'
// Using the default instance's contract
const transactionA = buildTransaction ( 'set_greeting' , { args : { greeting : 'Hello my dear!' } } )
const transactionB = buildTransaction ( 'set_age' , { args : { age : 22 } } )
// Using diff contract
const transactionC = buildTransaction ( 'update_state' , {
receiverId : 'my-state-contract.testnet' ,
args : { allowed : true } ,
} )
// Optional
const callbackUrl = 'https://my-page.com/callback-success'
// [payable]
contractApi . callMultiple ( [ transactionA , transactionB , transactionC ] , callbackUrl ) . then ( ( ) => console . log ( 'Done!' ) ) 사용해야 할 두 가지 종류의 캐시 시스템이 있습니다. Memory Cache 및 Storage Cache 입니다.
Memory Cache : 데이터가 메모리에만 존재하므로 앱이 새로 고침 될 때 지워집니다.
Storage Cache : 브라우저 탭이 새로 고침 된 경우에도 데이터가 유지됩니다. 데이터는 로컬 스토리지를 사용하여 지속됩니다.
캐시를 인스턴스화 할 때 expirationTime (초)을 제공해야합니다. 이것은 실제 계약 전화를하는 대신 캐시를 반환 해야하는시기를 아는 데 사용됩니다. 캐시가 만료되면 계약에 대한 실제 호출이 이루어집니다. 각 계약의 방법에는 고유 한 만료 시간이 있습니다.
// web3Api.ts
import naxios , { StorageCache } from '@wpdas/naxios'
// ...
/**
* Cached - Greeting Contract API
*/
export const cachedGreetingContractApi = naxiosInstance . contractApi ( {
contractId : 'dev-1692221685438-15421910364142' ,
cache : new StorageCache ( { expirationTime : 5 * 60 } ) , // 5 minutes
} ) 그런 다음 캐시 view 사용하려면 캐시 된 데이터를 사용하려는 구성 객체를 전달할 수 있습니다.
import { cachedGreetingContractApi } from './web3Api'
// Fetch Greetings [free]
const args : { }
const config : { useCache : true }
cachedGreetingContractApi . view < string > ( 'get_greeting' , args , config ) . then ( ( response ) => console . log ( response ) )NAXIOS는 또한 가까운 RPC API에 대한 액세스를 제공하므로 원하는 데이터를 쿼리 할 수 있습니다. RPC API 문서 근처를 방문하여 사용 방법을 배우십시오.
import { rpcApi } from './web3Api'
// Viewing account using Near RPC API
rpcApi
. query ( {
request_type : 'view_account' ,
finality : 'final' ,
account_id : 'wendersonpires.near' ,
} )
. then ( ( data ) => console . log ( 'Account Data:' , data ) ) buildTransaction buildTransaction 메소드는 계약의 거래 기관을 구축 해야하는 경우, 주로 여러 계약 전화를 원할 때 유용합니다.
여기에서 참조를 참조하십시오.
validateNearAddress주소가 유효한 주소인지 확인하는 데 사용됩니다.
import { validateNearAddress } from '@wpdas/naxios'
console . log ( validateNearAddress ( 'fake.near' ) ) // true
console . log ( validateNearAddress ( 'fake.nears' ) ) // false
console . log ( validateNearAddress ( 'fake.testnet' ) ) // true
console . log ( validateNearAddress ( 'fake' ) ) // false calculateDepositByDataSize저장되는 데이터에 필요한 예금을 계산하십시오. (바이트 당 ~ 0.00001n) 버퍼를 위해 약간 추가로
import { calculateDepositByDataSize } from '@wpdas/naxios'
const myData = { age : 22 , name : 'user name' }
console . log ( calculateDepositByDataSize ( myData ) ) // 0.00087 Near (not yocto NEAR) isClient이것이 서버 또는 클라이언트에서 실행 중인지 말하면 간단한 검사기.
import { isClient } from '@wpdas/naxios'
if ( isClient ( ) ) {
console . log ( 'Hi from client' )
} else {
console . log ( 'Hi from server' )
} 자유롭게 문제를 열거 나 요청을 가져 오십시오. 주요 변경 사항을 위해 먼저 문제를 열어 변경하고 싶은 것을 논의하십시오.