@gala-chain/gala-core-sdk

中文文档
1.2.1发布于 2026/11/10Apache-2.0TypeScriptESM + CJS近 30 天下载 4762

GalaChain Core SDK:签名(本土,个人签名,EIP-712),网关运输,网关信使读取(余额,令牌类,NFT收藏)和写取(转移,燃烧,锁定,解锁)以及共享出错模式,每个产品SDK和app

中文使用文档
文档目录16 节
  1. 安装
  2. 快开始
  3. 里面有什么东西
  4. 子路径
  5. 桥
  6. 钱包提供者
  7. 反应
  8. 网关写入
  9. NFT 写作
  10. 网关已读
  11. 签署均等
  12. 原生反应
  13. 套装大小
  14. 状态
  15. 从gswap-sdk 1.x移动
  16. 许可证

加拉钱核心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钱包上下文和钩子./providersreact (可选对等者,16.8至19; react-dom 无需)
@gala-chain/gala-core-sdk/bridge连接到埃特鲁姆和索拉纳的GalaChain, 频道包装/未包装, 可桥接和可包装的代币列表ethers, (中文(简体) ), @solana/web3.js, (中文(简体) ), @solana/spl-token, (中文(简体) ), @scure/base, (中文(简体) ), bignumber.jsethers 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页:1 uniqueKey 除非您通过一个文件,否则,每件文件都要计价,并且有超时 实值 GATEWAY_WRITE_OUTCOME_UNKNOWN: 重试于相同ME uniqueKey从来没有新鲜的.
  • 收据载有链条所回答、阅读和检查的内容,从未发明过: collection 财务报告和审定财务报表 authorizedUsers 索赔的赔偿额 tokenClass 创建者 tokenInstances 薄荷(作为 - 任何其它答案都是: GATEWAY_RESPONSE_INVALID) (中文(简体) ).
  • authorizedUser, (中文(简体) ), owner 财务报告和审定财务报表 authorities 是用户引用(见上文身份);a eth| 引用由账户下的链条存储 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页:1 fetchAll... 读作: 需要超过 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.

版本与发布记录

@gala-chain/gala-core-sdk 共发布 23 个版本,首次发布于 2026/10/15;过去 12 个月发布了 23 个版本。

版本发布日期距今
1.2.1latest2026/11/106 天前
1.2.02026/11/106 天前
1.2.0-beta.42026/11/069 天前
1.2.0-beta.32026/11/0610 天前
1.2.0-beta.22026/11/0610 天前
1.2.0-beta.12026/11/0511 天前

关于 @gala-chain/gala-core-sdk 的常见问题

@gala-chain/gala-core-sdk 是什么?

GalaChain Core SDK:签名(本土,个人签名,EIP-712),网关运输,网关信使读取(余额,令牌类,NFT收藏)和写取(转移,燃烧,锁定,解锁)以及共享出错模式,每个产品SDK和app

如何安装 @gala-chain/gala-core-sdk?

在项目目录运行 npm install @gala-chain/gala-core-sdk,或使用 pnpm add / yarn add / bun add。

@gala-chain/gala-core-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@gala-chain/gala-core-sdk 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@gala-chain/gala-core-sdk 可以商用吗?

@gala-chain/gala-core-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@gala-chain/gala-core-sdk 的下载量有多少?

根据 npm 官方下载统计,@gala-chain/gala-core-sdk 在 2026/10/16 – 2026/11/14 这 30 天内被下载 4,762 次,日均约 159 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@gala-chain/gala-core-sdk 还在维护吗?

最新版本 1.2.1 发布于 2026/11/10(6 天前);至今共发布 23 个版本,其中过去 12 个月发布了 23 个;首次发布于 2026/10/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。