support TRX coin
This commit is contained in:
		
							parent
							
								
									8e3ae5639f
								
							
						
					
					
						commit
						22f93d0a7b
					
				| @ -15,6 +15,7 @@ | ||||
|     "js-crypto-key-utils": "^1.0.4", | ||||
|     "keccak": "^3.0.2", | ||||
|     "secp256k1": "^4.0.3", | ||||
|     "tronweb": "^6.0.3", | ||||
|     "tweetnacl": "^1.0.3" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|  | ||||
							
								
								
									
										31
									
								
								ticc.js
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								ticc.js
									
									
									
									
									
								
							| @ -16,6 +16,7 @@ const hdkey = require('hdkey') // https://github.com/cryptocoinjs/hdkey // 或 | ||||
| const secp256k1 = require('secp256k1') | ||||
| const base32encode = require('base32-encode') | ||||
| const base32decode = require('base32-decode') | ||||
| const { TronWeb } = require('tronweb') | ||||
| 
 | ||||
| // 全部以hex为默认输入输出格式,方便人的阅读,以及方便函数之间统一接口
 | ||||
| 
 | ||||
| @ -532,6 +533,8 @@ class TicCrypto { | ||||
|       return `m/44'/0'/${path}` | ||||
|     } else if (coin === 'ETH') { | ||||
|       return `m/44'/60'/${path}` | ||||
|     } else if (coin === 'TRX') { | ||||
|       return `m/44'/195'/${path}` | ||||
|     } else if (coin === 'TIC') { | ||||
|       return `m/44'/60000'/${path}` | ||||
|     } else if (coin === 'MATIC' || coin === 'POL') { | ||||
| @ -578,6 +581,14 @@ class TicCrypto { | ||||
|       } else if (coin === 'BTC' || coinFamily === 'BTC') { | ||||
|         world = world || 'mainnet' | ||||
|         kp.address = this.pubkey_to_address({ pubkey: kp.pubkey, coin, coinFamily, world }) | ||||
|       } else if (coin === 'TRX' || coinFamily === 'TRX') { | ||||
|         const prikey = kp.prikey.replace(/^0x/, '') // tronweb 需要去掉开头的 0x
 | ||||
|         const tronweb = new TronWeb({ | ||||
|           fullHost: 'https://api.trongrid.io', | ||||
|           privateKey: prikey, | ||||
|         }) | ||||
|         world = world || 'tron' | ||||
|         kp.address = tronweb.address.fromPrivateKey(prikey) // 返回的是带 41 开头的地址
 | ||||
|       } else { | ||||
|         world = world || my.WORLD | ||||
|         kp.address = this.pubkey_to_address({ pubkey: kp.pubkey, coin, coinFamily, world }) | ||||
| @ -1613,26 +1624,26 @@ class TicCrypto { | ||||
| 
 | ||||
|   static convert_pexid (key) { | ||||
|     key = key.toLowerCase() | ||||
|     let pextokenCid, pextokenCosh, nftToid, tokenURI | ||||
|     let pextokenCid, pextokenCahex, nftToid, tokenURI | ||||
|     try { | ||||
|       if (key.length < 64 && /^bafkrei/.test(key)) { | ||||
|         pextokenCid = key | ||||
|         pextokenCosh = this.cid_to_cahex({ cid: pextokenCid }) | ||||
|         nftToid = BigInt('0x' + pextokenCosh).toString() | ||||
|         pextokenCahex = this.cid_to_cahex({ cid: pextokenCid }) | ||||
|         nftToid = BigInt('0x' + pextokenCahex).toString() | ||||
|       } else if (key.length > 64 && /^\d+$/.test(key)) { | ||||
|         nftToid = key | ||||
|         pextokenCosh = BigInt(nftToid).toString(16) | ||||
|         pextokenCid = this.cahex_to_cid({ cahex: pextokenCosh }) | ||||
|         pextokenCahex = BigInt(nftToid).toString(16) | ||||
|         pextokenCid = this.cahex_to_cid({ cahex: pextokenCahex }) | ||||
|       } else if (/^[0-9a-f]{64}$/.test(key)) { | ||||
|         pextokenCosh = key | ||||
|         pextokenCid = this.cahex_to_cid({ cahex: pextokenCosh }) | ||||
|         nftToid = BigInt('0x' + pextokenCosh).toString() | ||||
|         pextokenCahex = key | ||||
|         pextokenCid = this.cahex_to_cid({ cahex: pextokenCahex }) | ||||
|         nftToid = BigInt('0x' + pextokenCahex).toString() | ||||
|       } | ||||
|       tokenURI = pextokenCosh ? `https://ipfs.tic.cc/ipfs/f01551220${pextokenCosh}` : undefined | ||||
|       tokenURI = pextokenCahex ? `https://ipfs.tic.cc/ipfs/f01551220${pextokenCahex}` : undefined | ||||
|     } catch {} | ||||
|     return { | ||||
|       pextokenCid, | ||||
|       pextokenCosh, | ||||
|       pextokenCahex, | ||||
|       nftToid, | ||||
|       tokenURI, | ||||
|     } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user