加拉钱核心SDK
自己签DTO? 现在每个签名的字都需要
dtoOperation。 。 。 . 每端绘图,前后 有效载荷和错误: 移动到数字操作。 md使用SDK签名器? 升级; 它为您设置了字段 .
@gala-chain/gala-core-sdk 是 GalaChain 产品 SDK 和 app 股份的分层: 签名
(原始、个人签名、EIP-712和任意输入的数据),签名者(私钥、懒惰的私钥)
键, Gala 钱包, EIP-1193 浏览器钱包,网关传输(fetch 请求者与
超时、有线选项、轴和醚适配器),网关符号读取(平衡和持有,
符号类、 NFT 收藏授权)和写作( 传输、 燃烧、 锁定、 解锁)、 符号
类密钥并写入 uniqueKeys,以及共享错误模型(GalaSDKError页:1
目录, 失败视图). 它对加拉钱说
网关一般;产品后端(DEX和LOUSTPAD后端)有自己的SDK
(单位:千美元)@gala-chain/gswap-sdk, (中文(简体) ), @gala-chain/launchpad-sdk以它为基础.
安装
npm install @gala-chain/gala-core-sdk
将准确的版本输入到应用程序构建中 。 产品 SDK 将核心作为 同伴依赖: 安装它 旁边的产品SDK,一次.
快开始
import { PrivateKeySigner, serialize, signNative, normalizePrivateKey, withDtoOperation } from '@gala-chain/gala-core-sdk';
const signer = new PrivateKeySigner(process.env.GALACHAIN_PRIVATE_KEY!);
// The chain refuses a signed DTO without the `dtoOperation` of the call it is sent to, and the field is
// part of what is signed: set it BEFORE signing (GatewayWrites and the product SDKs already do).
const dto = withDtoOperation('asset/token-contract', 'TransferToken', { quantity: '1', uniqueKey: 'k-1' });
const signed = await signer.signObject('TransferToken', dto);
// The primitives the signer is built on, byte-identical to @gala-chain/api:
const key = normalizePrivateKey(process.env.GALACHAIN_PRIVATE_KEY!);
console.log(serialize({ b: 1, a: 2 }), signNative(key, { a: 1 }));
key.fill(0);
里面有什么东西
| 区域 | 出口 |
|---|---|
| 签名人 | PrivateKeySigner, (中文(简体) ), createLazyPrivateKeySigner, (中文(简体) ), GalaWalletSigner, (中文(简体) ), BrowserWalletSigner, (中文(简体) ), signPreSend, (中文(简体) ), signPreSendFor类型 GalaChainSigner |
| 签名 | serialize, (中文(简体) ), getPayloadToSign, (中文(简体) ), signNative, (中文(简体) ), signPersonalMessage, (中文(简体) ), personalSignPrefixFor, (中文(简体) ), fixpointPrefixFor, (中文(简体) ), signChainDto*, (中文(简体) ), signRawObject, (中文(简体) ), generateEIP712Types, (中文(简体) ), buildEIP712Payload, (中文(简体) ), hashTypedData, (中文(简体) ), signTypedDataPayload; 签名 dtoOperation数字 : withDtoOperation, (中文(简体) ), dtoOperationOf, (中文(简体) ), CHAIN_CONTRACT_OPERATION_PREFIXES类型 ChainContractPath |
| 运输 | fetchRequestor, (中文(简体) ), requestWithTimeout (单位:千美元)kind: { write: false } 使读取的超时 和运输故障说 write: false, (中文(简体) ), buildRequestHeaders, (中文(简体) ), buildQueryString, (中文(简体) ), readRetryAfter, (中文(简体) ), httpRequestorFromAxios, (中文(简体) ), eip1193ProviderFromEthers, (中文(简体) ), isFetchTransportFailure,类型 HttpRequestor, (中文(简体) ), WireOptions, (中文(简体) ), RequestKind |
| 网关已读 | GatewayReads (单位:千美元)fetchBalances, (中文(简体) ), fetchTokenBalance, (中文(简体) ), fetchNftBalances, (中文(简体) ), fetchTokenClasses, (中文(简体) ), fetchTokenClassesWithSupply, (中文(简体) ), fetchTokenClass, (中文(简体) ), fetchTokenDetails, (中文(简体) ), fetchTokenClassesPage, (中文(简体) ), fetchAllTokenClasses, (中文(简体) ), fetchNftCollectionAuthorizationsPage, (中文(简体) ), fetchAllNftCollectionAuthorizations, (中文(简体) ), fetchPublicKey, (中文(简体) ), GATEWAY_READ_METHODS, (中文(简体) ), GATEWAY_READ_LIMITS,类型 GalaChainTokenBalance, (中文(简体) ), GalaChainTokenBalanceSummary, (中文(简体) ), GalaChainTokenClass, (中文(简体) ), GalaChainTokenDetails, (中文(简体) ), GalaChainPage, (中文(简体) ), GalaChainPublicKey |
| 网关写入 | GatewayWrites (单位:千美元)transferGala, (中文(简体) ), transferToken, (中文(简体) ), burnTokens, (中文(简体) ), lockTokens, (中文(简体) ), unlockTokens; NFTs 键 : claimNftCollection, (中文(简体) ), createNftCollection, (中文(简体) ), mintNft, (中文(简体) ), estimateNftFee, (中文(简体) ), galaChainUserRef (网关所接受的拼法中的用户参考), GATEWAY_WRITE_METHODS, (中文(简体) ), GATEWAY_WRITE_BATCH_LIMITS, (中文(简体) ), GALA_TOKEN_CLASS_KEY, (中文(简体) ), NFT_WRITE_METHODS, (中文(简体) ), NFT_MINT_LIMIT,类型 GatewayWritesOptions, (中文(简体) ), GatewayWriteReceipt, (中文(简体) ), WriteReceipt, (中文(简体) ), TokenNameResolver, (中文(简体) ), TokenQuantityInput, (中文(简体) ), NftFeeRequest, (中文(简体) ), NftFeeQuote, (中文(简体) ), ClaimNftCollectionInput, (中文(简体) ), CreateNftCollectionInput, (中文(简体) ), MintNftInput |
| 部署 | GALA_CHAIN_ENVIRONMENTS (出入口和DEX API prod 编号 : stage(中文(简体) ) |
| 密钥 | compositeKeyOf, (中文(简体) ), tryParseTokenClassKey, (中文(简体) ), tryParseCompositeKey, (中文(简体) ), createUniqueKey, (中文(简体) ), assertUniqueKey, (中文(简体) ), isValidUniqueKey |
| 钱包 | createWallet (随机,从私钥取出,或从12/24-字元取自: m/44'/60'/0'/0/0, (中文(简体) ), validateWalletInput, (中文(简体) ), getPublicKeyFromPrivateKey, (中文(简体) ), getEthereumAddressFromPrivateKey, (中文(简体) ), checksumEthereumAddress,类型 GeneratedWallet, (中文(简体) ), PublicKeyResult |
| 错误 | GalaSDKError, (中文(简体) ), isGalaError, (中文(简体) ), GALA_ERROR_CATALOG, (中文(简体) ), galaErrorTemplates, (中文(简体) ), GALA_ERROR_PHASE_BY_CODE, (中文(简体) ), toFailureView, (中文(简体) ), isWriteView, (中文(简体) ), FAILURE_OUTCOMES |
钱包助手( E)./wallet(中文(简体) ) | isWalletUserRejection, (中文(简体) ), walletDeclineCode, (中文(简体) ), isGalaErrorLike |
钱包提供者(./providers(中文(简体) ) | PrivateKeyProvider, (中文(简体) ), ExternalWalletProvider, (中文(简体) ), GalaWalletProvider, (中文(简体) ), detectWallets, (中文(简体) ), subscribeToWalletChanges, (中文(简体) ), getWalletByRdns, (中文(简体) ), isWalletAvailable, (中文(简体) ), findMetaMaskWallet, (中文(简体) ), getMetaMaskWallet, (中文(简体) ), findTrustWallet, (中文(简体) ), getTrustWallet, (中文(简体) ), hasAnyWallet, (中文(简体) ), getInjectedEip1193Provider, (中文(简体) ), KNOWN_WALLET_RDNS, (中文(简体) ), createWalletProvider, (中文(简体) ), createProviderFromEip1193, (中文(简体) ), ensureConnected, (中文(简体) ), getPrivateKeyIfAvailable, (中文(简体) ), isPrivateKeyProvider, (中文(简体) ), isExternalProvider, (中文(简体) ), isEip1193Provider类型 WalletProvider |
反应( E)./react(中文(简体) ) | WalletProvider (内容部分), WalletContext, (中文(简体) ), useWallet, (中文(简体) ), useWalletContext, (中文(简体) ), useWalletConnection, (中文(简体) ), useWalletDetection, (中文(简体) ), useWalletAddress, (中文(简体) ), useGalaAddress, (中文(简体) ), useWalletProvider, (中文(简体) ), useIsWalletConnected |
桥 (./bridge(中文(简体) ) | BridgeService (进出伊特鲁姆和索拉纳的桥梁,费用、状况、外部余额), EthereumBridgeStrategy, (中文(简体) ), SolanaBridgeStrategy, (中文(简体) ), BaseBridgeStrategy, (中文(简体) ), GalaConnectClient, (中文(简体) ), BridgeableTokenService, (中文(简体) ), WrappableTokenService, (中文(简体) ), WrapService (通道包装/未包装), createSolanaWallet, (中文(简体) ), buildBridgeOutPayload (签名的桥出请求),桥常数和符号表,桥型, RateLimiter,指代金额帮助者(toBaseUnits, (中文(简体) ), fromBaseUnits, (中文(简体) ), formatTokenAmount, (中文(简体) ), compareAmounts(中文(简体) ) |
子路径
每一个子路径都是它自己的构造:它加载了根(和 ./react 通过包,
从来没有复制,所以一个应用程序有一个 GalaSDKError 类, 一组签名和一组提供者类
(在包装的柏油球上检查,由 pnpm run check:pack源代码
tests/subpath_isolation.test.ts) (中文(简体) ). 根从不载下道.
| 条目 | 它是为了什么 | 负载( 在根外) | 需要的对等 |
|---|---|---|---|
@gala-chain/gala-core-sdk | 签名、签名、运输、网关读写、密钥、钱包、出错 | @noble/*, (中文(简体) ), @scure/bip32, (中文(简体) ), @scure/bip39, (中文(简体) ), bignumber.js | 无 |
@gala-chain/gala-core-sdk/wallet | 无依赖钱包助手( 应用程序 shell) | 什么都没有(甚至连根也没有) | 无 |
@gala-chain/gala-core-sdk/providers | 一个 WalletProvider 每个钱包类型, EIP-6963 检测 | @noble/hashes | 无 |
@gala-chain/gala-core-sdk/react | 钱包上下文和钩子 | ./providers | react (可选对等者,16.8至19; react-dom 无需) |
@gala-chain/gala-core-sdk/bridge | 连接到埃特鲁姆和索拉纳的GalaChain, 频道包装/未包装, 可桥接和可包装的代币列表 | ethers, (中文(简体) ), @solana/web3.js, (中文(简体) ), @solana/spl-token, (中文(简体) ), @scure/base, (中文(简体) ), bignumber.js | ethers 6, (简体中文), @solana/web3.js 1.99+, (中文(简体) ), @solana/spl-token 0.4.15+(可选的同位素:在导入时安装) ./bridge(中文(简体) ) |
仅 ./bridge 负载 ethers 或者说 @solana/*:根和其他子路径从不做
(资料来源: pnpm run check:rn-safety 和隔离测试,以及已建文件
以烟雾盟誓.
桥
import { BridgeableTokenService, BridgeService, GalaConnectClient } from '@gala-chain/gala-core-sdk/bridge';
const walletAddress = 'eth|...';
// The DEX API's bridgeable token list (production by default; `baseUrl` for another deployment)
const tokens = new BridgeableTokenService(new GalaConnectClient({ walletAddress }));
const bridge = new BridgeService({
environment: 'prod', // or 'stage': GalaConnect, the gateway and the RPCs of that deployment
galaChainWalletAddress: walletAddress,
ethereumPrivateKey: process.env.ETH_PRIVATE_KEY!, // signs the bridge-out request and Ethereum deposits
bridgeableTokenService: tokens, // resolves a token id to its bridge symbol
});
// Token ids are class keys (pipe form or object): a bare symbol is refused (symbols are not unique)
const GALA = 'GALA|Unit|none|none';
const fee = await bridge.estimateBridgeFee({ tokenId: GALA, destinationChain: 'Ethereum' });
const out = await bridge.bridgeOut({ tokenId: GALA, amount: '10', destinationChain: 'Ethereum', recipientAddress: '0x...' });
const status = await bridge.waitForBridgeCompletion(out.transactionHash);
未完成的桥接或包裹 GalaSDKError (从来没有"失败"的结果). 一次a
关闭请求被接受
BRIDGE_OUT_OUTCOME_UNKNOWN (与台阶相接,接通桥请求id和 uniqueKey页:1
可能已经发送的保证金是 BRIDGE_DEPOSIT_OUTCOME_UNKNOWN也从未被重审过
SDK(英语:SDK). WrapService 从自己的频道将一个符号包裹到资产频道(MUSIC到GMUSIC)并
背面,由本地人签名 GalaChainSigner· ; createWrapService({ environment, walletAddress, signer })
为 prod 或者说 stage (环境提供GalaConnect、互换后端和网关URL;
因此,一个选项可以覆盖任意一个),所以包装不需要产品SDK. A 类 RequestTokenBridgeOut (结束和包装)
未包装)在Token合同上签字 dtoOperation
(单位:千美元)asset-channel_basic-asset_GalaChainToken:RequestTokenBridgeOut而不是桥的合同,什么的
链式拒绝;在2026-11-02年舞台上作为EIP-712的一个领域加以核实 GalaTransaction 类型,所以
签字盖上; buildBridgeOutPayload 这样做。 包/ 未包请求没有 wrap 字段 :
链条的严格验证拒绝了它,方向是目的地通道id(在舞台上验证)
)). 它根据资源频道的代号合同签署
(单位:千美元)asset-channel_basic-asset_GalaChainToken:RequestTokenBridgeOut 打开, music_music_GalaChainToken:RequestTokenBridgeOut
关闭; 网关以赤裸的 401 答错操作 UNAUTHORIZED然后通过交换后端
链路由 (GalaConnectClient.requestWrapOut,需要客户端的 dexBackendBaseUrl: 后端根
无 /api/v1;它检查签名器,金额和操作,然后接通链条,而不是通过
加拉康纳克特 /RequestTokenBridgeOut,它只把一个请求当作一个包,当它携带 wrap: true 页:1
链子拒绝。 仅完成
(单位:千美元)BridgeTokenOut)是GalaConnect的:链条要桥务局为其签名(用户签名的有:
拒绝使用 NOT_A_BRIDGE_AUTHORITY) (中文(简体) ). 其他的桥弦,都看到在舞台上直播,由GalaConnect(这个SDK)签名
他们中没有任何一个人 BridgeTokenOut 打开 /asset/bridge-contract 实值
asset-channel_bridge-chaincode_BridgeContract:BridgeTokenOut (操作台的桥-合同条目)
和其中包含的赠款 BridgeTokenOut 签名
asset-channel_bridge-chaincode_GalaChainToken:GrantAllowance,这在平台的操作中没有
页:1.
类型脚本: 该 ./bridge 声明名称 @solana/web3.js 类型,其自己的声明导入
节点的 http 财务报告和审定财务报表 https,所以导入的 TypeScript 应用程序 ./bridge 已经 @types/node (与
类型脚本 6, "types": ["node"])或(或) skipLibCheck。其他条目需要节点类型.
钱包提供者
Gala钱包浏览器扩展(Install, what it sign, its professor methods)有自己的页面: 文件/wallet-extension.md。 。 。 .
import { detectWallets, ExternalWalletProvider, PrivateKeyProvider } from '@gala-chain/gala-core-sdk/providers';
const { wallets } = await detectWallets(); // EIP-6963 announcements, then window.ethereum / window.gala
const first = wallets[0];
if (first === undefined) throw new Error('No wallet announced itself');
const provider = new ExternalWalletProvider(first.provider);
await provider.connect();
await provider.signMessage('Hello'); // personal_sign
const signer = provider.getSigner(); // a GalaChainSigner for GatewayWrites, gswap-sdk, ...
const server = new PrivateKeyProvider(process.env.GALACHAIN_PRIVATE_KEY!); // Node, CLI, bots
提供者在连接时只听钱包, 遵循 accountsChanged (为空或
错误的账户列表断开它),每次操作一次读取它的连接,所以一个
操作从不命名两个账户. getSigner() 绑定在已连接的账户上
调用 : 在账户更改后, 获取新的签名 . GalaWalletProvider 选择其在
每个签名之前的扩展名,与同一扩展名的所有其他签名符一起序列化。 每个
失败是 GalaSDKError数字 : WALLET_CONNECTION_FAILED (单位:千美元)user_rejected, (中文(简体) ), no_accounts, (中文(简体) ), failed, (中文(简体) ),
WALLET_NOT_CONNECTED, (中文(简体) ), SIGNING_FAILED (单位:千美元)user_rejected 当他拒绝的时候,
INVALID_SIGNATURE, (中文(简体) ), PRIVATE_KEY_NOT_ACCESSIBLE, (中文(简体) ), INVALID_WALLET_PROVIDER_CONFIG检测
工作没有窗口(Node, SSR, React Industrial):它什么也没有找到,扔什么也没有.
反应
import { WalletProvider, useWalletConnection, useWalletDetection, useWallet } from '@gala-chain/gala-core-sdk/react';
<WalletProvider autoDetect>
<App />
</WalletProvider>;
const { wallets } = useWalletDetection();
const { connectDetected } = useWalletConnection(); // a GalaWalletProvider for Gala Wallet, an ExternalWalletProvider otherwise
const { address, galaAddress, isConnected } = useWallet();
地址跟随钱包( 账户开关, 钱包侧断接); 最近的连接
胜过一个较慢的早期; 创建的上下文在替换时释放, 当
其连接失败并卸载; initialProvider 连接一次。 外面的钩子
<WalletProvider> 实值 WALLET_CONTEXT_MISSING。它在服务器上制作(没有窗口,什么都没有)
发现). ./react 不再出口提供者:从 ./providers。 。 。 .
每个出错的核心投出都是 GalaSDKError 拥有稳定 code平顶 params 对于一个应用的自己
本地化和a phase (单位:千美元)pre_send:没有转发)。 编码列于
文件/目录.md。一个产品 SDK 错误类扩展
GalaSDKError 并增加自己的代码; isGalaError(error) 认清其中任何一个的错误.
网关写入
import { GatewayWrites, PrivateKeySigner } from '@gala-chain/gala-core-sdk';
const writes = new GatewayWrites({
gatewayBaseUrl: 'https://gateway-mainnet.galachain.com',
signer: new PrivateKeySigner(process.env.GALACHAIN_PRIVATE_KEY!),
walletAddress: 'eth|70997970C51812dc3A010C7d01b50e0d17dc79C8', // or a client| alias
});
const { transactionId, blockNumber } = await writes.transferGala({ to: 'client|abc', quantity: '1.5' });
await writes.lockTokens({ tokens: [{ tokenClassKey: 'GALA|Unit|none|none', quantity: '10' }], expires: 0 });
- 数量是WALE 符号,因为链条收到的小数字符串;它们被签为
写( a)
"1.50"留下来"1.50"并且从来没有缩放. - 脚指:
tokenClassKey(单位:千美元)collection|category|type|additionalKey四个部分$复合键,或对象)+instance(默认)"0"),或tokenName通过 选项tokenNameResolver。赤色符号从来不是类键. - 身份( E)
to, (中文(简体) ),walletAddress, (中文(简体) ),lockAuthority以物配主的账户eth|<40 hex>, (中文(简体) ),0x<40 hex>,赤色六角体;除了错误的EIP-55校验和之外,任何外壳都总是作为eth|<checksummed>,是网关接受的唯一拼写;client|<id>现按书面方式发送.eth|0x<hex>实值 没有 地址表:在签署或发送任何信息之前被拒绝INVALID_ETH_USER_REF_PREFIX(单位:千美元)eth|引用时使用 40 位数字,没有0x; 错误expected是正确的拼写)。 一个赤裸的0x<40 hex>是一个普通的Ethereum地址,并且是 转换. - 签名人被递出裸露的 DTO;送出的尸体正是 DTO 外加签名(一个签名人)
以添加或更改字段的方式拒绝)。 A 类
uniqueKey除非您通过一个,否则每张纸都是薄荷的. - 每个DTO携带一个
dtoOperation(单位:千美元)<channel>_<chaincode>_<Contract>:<Method>,例如asset-channel_basic-asset_GalaChainToken:TransferToken),在签名器运行前设置,因为它是 签名的一部分。 连锁拒绝一个没有它的DTO("DTO操作不提供"). 签名 请求必须包括 dto 操作." ) 或与它所发送的电话无关("dto was") 签名将调用 X 操作,但当前操作是 Y"). 写入及其操作的 URL 来自一个表格(CHAIN_CONTRACT_OPERATION_PREFIXES因此,他们不能不同意。 为了一个呼叫 SDK 不制作,使用withDtoOperation(contractPath, method, dto)(合同路径是: 路线的<channel>/<contract>,例如asset/token-contract)或(或)signPreSendFor(signer, contractPath, method, dto)它能设置它和迹象signPreSend(signer, method, dto)保留其 1. 0. 0 签名并按给定的 DTO 签名; 已经命名不同名称的 DTO 拒绝操作为SIGNING_FAILED。签字后绝不添加:签名不会 盖住它。 在发射板的捆绑内 操作是捆绑者的BatchSubmit(单位:千美元)asset-channel_basic-asset_Launchpad:BatchSubmit),而不是内置DTO自己的方法:发射板-sdk设置. - 已打入的数据( E)
BrowserWalletSigner与{ scheme: 'eip712' },则./bridge下签) eIP-712域名,其部署必须接受: 舞台链拒绝任何东西,但有自己的 ("EIP-712域名必须是GalaChainStage这个部署"). 过GALA_CHAIN_ENVIRONMENTS[env].eip712DomainName(单位:千美元)GalaChainStage在舞台上; 缺席在 prod 上, 其中有一个签名者 保留它一直签名的名字:ethereum,以及GalaConnect作为签注者eip712DomainName· ;BridgeService环境就靠自己 连锁ID保持钱包的活口. - 加拉钱的
Status在信任其它东西之前选中; 超时或断开的连接是GATEWAY_WRITE_OUTCOME_UNKNOWN: 写入可能已经应用过, 请检查它的uniqueKey财务报告和审定财务报表 永远不要在新密钥下重新发送.
NFT 写作
打开 writes 上文:
import { getPublicKeyFromPrivateKey } from '@gala-chain/gala-core-sdk';
const claim = await writes.claimNftCollection({ collection: 'MyArt' }); // GrantNftCollectionAuthorization
await writes.createNftCollection({ // CreateNftCollection
collection: 'MyArt', category: 'Item', type: 'Sword',
name: 'Sword', symbol: 'SWD', description: 'A sword', image: 'https://example.com/sword.png',
maxSupply: '1000', // required: the chain refuses an unbounded NFT supply
});
const { tokenInstances } = await writes.mintNft({ // MintTokenWithAllowance (the minter grants itself the allowance)
collection: 'MyArt', category: 'Item', type: 'Sword', quantity: '2',
});
const quote = await writes.estimateNftFee( // the chain's DryRun, nothing is written
{ write: 'mintNft', collection: 'MyArt', category: 'Item', type: 'Sword', quantity: '2' },
{ callerPublicKey: getPublicKeyFromPrivateKey(process.env.GALACHAIN_PRIVATE_KEY!).compressedPublicKey },
);
console.log(quote.fee, quote.feeToken); // "1" "GALA" on stage; each environment has its own fees
- 每个书写都接受每个核心书写的检查(在签名前拒绝输入)
或发送,
INVALID_NFT_INPUT页:1uniqueKey除非您通过一个文件,否则,每件文件都要计价,并且有超时 实值GATEWAY_WRITE_OUTCOME_UNKNOWN: 重试于相同MEuniqueKey从来没有新鲜的. - 收据载有链条所回答、阅读和检查的内容,从未发明过:
collection财务报告和审定财务报表authorizedUsers索赔的赔偿额tokenClass创建者tokenInstances薄荷(作为 - 任何其它答案都是:GATEWAY_RESPONSE_INVALID) (中文(简体) ). authorizedUser, (中文(简体) ),owner财务报告和审定财务报表authorities是用户引用(见上文身份);aeth|引用由账户下的链条存储client|别名.authorities财务报告和审定财务报表owner在省略时默认为写入器.- 连锁店拒绝另一个账户持有的名称(
COLLECTION_NAME_ALREADY_CLAIMED在另一个名称中同名 弹壳,USER_NOT_AUTHORIZED_FOR_COLLECTION对于一个不同的帐户,准予了),但接受了对一个帐户的第二项索赔 说明已经持有的SAME账户的名称(第2026-11-04阶段):索赔不是一元索赔,因此,首先检查是否有可用性,然后 只用同样的重试uniqueKey(单位:千美元)UNIQUE_TRANSACTION_CONFLICT拒绝重播). mintNft实值MintTokenWithAllowance除非existingAllowance: true(单位:千美元)MintToken,哪个 用于作者已经持有的津贴.estimateNftFee价格与网关的 DryRun 相同,需要作者的公开 键callerPublicKey因为没有要求签字人自己签字。 收费是网络的 这一环境的数字(阶段为索赔收取5GALA,5为创造,1为薄荷) 2026-11-04; 固定费用getNftCollectionClaimFee{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}是主网的 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}连锁店会写 拒绝是GATEWAY_READ_REJECTED从不收费.
网关已读
import { GALA_CHAIN_ENVIRONMENTS, GatewayReads } from '@gala-chain/gala-core-sdk';
const reads = new GatewayReads({ gatewayBaseUrl: GALA_CHAIN_ENVIRONMENTS.prod.gatewayBaseUrl });
const gala = await reads.fetchTokenBalance({ owner: 'client|abc', tokenClassKey: 'GALA|Unit|none|none' });
console.log(gala?.quantity, gala?.lockedQuantity, gala?.availableQuantity); // whole-token strings
const { symbol, decimals } = await reads.fetchTokenDetails('GUSDC|Unit|none|none');
const classes = await reads.fetchAllTokenClasses({ collection: 'BONKTactics' }, { maxPages: 10 });
- 阅读没有签名, 应用什么也没有: 请求左后每一次失败都这么说
(单位:千美元)
error.write === false),重试总是安全的. - 拥有者被拼写为写作者拼写(Ethereum账户以任何形式拼写为:
eth|<checksummed>, (中文(简体) ),client|); 类密钥以相同的形式被接受.$MUSIC余额在网关上读取music频道. - 每一个答案都会被检查(GalaChain)
Status(每行)在返回之前,有一份平衡 拒绝另一个比要求的主人。 数量保持链条全小数 字符串; 持有的总数是准确的, 并且从未以形容的形式出现 . - 不存在的符号类是
TOKEN_CLASS_NOT_FOUND页:1fetchAll...读作: 需要超过maxPages页面为PAGINATION_LIMIT_EXCEEDED(从来没有一个短名单). fetchPublicKey(user)读取 GalaChain 为用户注册的密钥({ publicKey, signing? }, (中文(简体) ),undefined当时,没有任何人得救了。 公共网关不路径 公钥合同;通过连接-api代理读取:new GatewayReads({ gatewayBaseUrl: 'https://api-galaswap.gala.com/galachain' })。 。 。 .
签署均等
签名代码被标注为字节 @gala-chain/api 和加拉钱包和
gSwap 网络应用程序的签名代码由黄金矢量在 tests/fixtures/wallet-signing-golden.json
财务报告和审定财务报表 tests/fixtures/frontend-signing-golden.json (单位:千美元)tests/signing-golden.test.ts) (中文(简体) ). 他们永远不会
重新生成以通过测试。 那两个人把签名的原始字节和网络应用字节钉上
携带无 dtoOperationSDK自己的书写和桥接录音
(单位:千美元)tests/fixtures/writes-signing-golden.json, (中文(简体) ), bridge-out-recorded.json钉上签名的尸体
包括它.
原生反应
已运出的来源使用已建的节点, 不 Buffer,没有 process,从不装载 ethers, (中文(简体) ),
axios 或者说 @gala-chain/api (单位:千美元)pnpm run check:rn-safety,同样由测试套房运行). 唯一一个
多填充 React 本地/Hermes 需求为 crypto.getRandomValues,用于薄荷 uniqueKeys和新设
随机钱包( e)createWallet():
import 'react-native-get-random-values'; // once, before the SDK mints a key
没有钥匙或钱包就扔出去 CSPRNG_UNAVAILABLE (从来没有一个弱后退).
./bridge 是例外: 它装入 ethers, (中文(简体) ), @solana/web3.js 财务报告和审定财务报表 @solana/spl-token,则
在 React Industrial 上导入的应用程序也会安装这些库要求的
(单位:千美元)crypto.getRandomValues (b) 上文,其中 createSolanaWallet 需求; @solana/web3.js'反应'
本土指导增加了全球指导 Buffer 从 buffer 软件包)。 科雷自己来的 ./bridge 代码使用
没有 Buffer 或者说 process 全球( 索拉纳指令数据为 Uint8Array(s) 没有触摸到
模块负载: 守护允许 ./bridge 完全就是这三套套,没有别的(base58是)
@scure/base纯洁的JS像其他核心.
套装大小
sideEffects: false,浏览器构建为每个源模块一个文件,所以是一个app(或产品)
SDK的光能模块),它导入一个辅助器只装入该模块.
@gala-chain/gala-core-sdk/wallet 只持有无依赖钱包助手( 大约1.2 kB)
精密化,封顶为2克B. tests/tree_shaking.test.ts 给每个无外壳的助手预算 这个
浏览器构建 ./providers (约17 kB 的精度, 7.6 kB gziped, 其中多数已知钱包)
图标, ./react (约4kB,1.7kB gziped)和 ./bridge (约60 kB 微调, 16 kB)
击出,之前 ethers 财务报告和审定财务报表 @solana/*) 只能由导入它们的应用程序来装入.
状态
1.2.1(1.2:NFT收集读取和收费估算,NFT写作)claimNftCollection, (中文(简体) ), createNftCollection 财务报告和审定财务报表 mintNft 打开 GatewayWrites,并引用他们的干流费
estimateNftFee; 弧点7: eth|0x<hex> 被拒绝,因为 INVALID_ETH_USER_REF_PREFIX,而不是地址表;rc.6: fetchPublicKey, MetaMask 和 Trust 钱包检测, 无声 restore()· ;
rc.5:每个Etereum账户 读取、写入或GalaConnect客户端发送是
eth|<EIP-55>,唯一的拼写 网关接受,和 galaChainUserRef 导出; rc.4:
bridgeableTokenService (见E/CN.4/Sub.2/2003/L.10。) 在:签名、签名、运输和出错模式(rc.0从gswap-sdk)
网关令牌写作(rc. 1出自启动板-sdk的转接和锁定服务,现已授权使用)
这里);网关符号读取(rc.2:余额,符号类,NFT收藏授权,来自
a. 发射板-sdk的平衡和象征性服务,现在在此授权)和部署终点;
钱包提供者( e)./providers),反应钩(./react),钱包助手(createWallet
和那座桥梁./bridge: 桥接, 符号列表, 包装/ 取消包装,
createSolanaWallet) (rc.3,来自发射板-sdk's /wallet, (中文(简体) ), /react, (中文(简体) ), helpers/wallet, (中文(简体) ), bridge/
及其可通融的/可包装的代币和包裹服务,这些已经不复存在.
从gswap-sdk 1.x移动
见 (原始内容存档于2013-10-12). Migrating-FROM-GSWAP.md: 每个已移动导出, 旧路径为新 路径,以及重新命名的错误和品牌标识符.
许可证
阿帕奇许可证2.0.