@railgun-community/shared-models 3.2.2 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,6 +106,19 @@ export declare type RailgunWalletTokenAmount = {
106
106
  export declare type RailgunWalletTokenAmountRecipient = RailgunWalletTokenAmount & {
107
107
  recipientAddress: string;
108
108
  };
109
+ /**
110
+ * Synced from TokenType (@railgun-community/engine).
111
+ */
112
+ export declare enum NFTTokenType {
113
+ ERC721 = 1,
114
+ ERC1155 = 2
115
+ }
116
+ export declare type RailgunNFTRecipient = {
117
+ nftAddress: string;
118
+ tokenSubIDString: string;
119
+ nftTokenType: NFTTokenType;
120
+ recipientAddress: string;
121
+ };
109
122
  export declare type EncryptDataWithSharedKeyResponse = {
110
123
  encryptedData: [string, string];
111
124
  randomPubKey: string;
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.ChainType = void 0;
3
+ exports.NFTTokenType = exports.ChainType = void 0;
4
4
  var ChainType;
5
5
  (function (ChainType) {
6
6
  ChainType[ChainType["EVM"] = 0] = "EVM";
7
7
  })(ChainType = exports.ChainType || (exports.ChainType = {}));
8
+ /**
9
+ * Synced from TokenType (@railgun-community/engine).
10
+ */
11
+ var NFTTokenType;
12
+ (function (NFTTokenType) {
13
+ NFTTokenType[NFTTokenType["ERC721"] = 1] = "ERC721";
14
+ NFTTokenType[NFTTokenType["ERC1155"] = 2] = "ERC1155";
15
+ })(NFTTokenType = exports.NFTTokenType || (exports.NFTTokenType = {}));
8
16
  //# sourceMappingURL=response-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-types.js","sourceRoot":"","sources":["../../src/models/response-types.ts"],"names":[],"mappings":";;;AAiEA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,uCAAO,CAAA;AACT,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB","sourcesContent":["import { BigNumber } from '@ethersproject/bignumber';\nimport { MerkletreeScanStatus } from './merkletree-scan';\nimport { EVMGasType, FeesSerialized } from './network-config';\n\nexport type RailgunAPICiphertext = {\n iv: string;\n data: string[];\n};\n\nexport type TransactionGasDetails =\n | TransactionGasDetailsType0\n | TransactionGasDetailsType1\n | TransactionGasDetailsType2;\n\nexport type TransactionGasDetailsType0 = {\n evmGasType: EVMGasType.Type0;\n gasEstimate: BigNumber;\n gasPrice: BigNumber;\n};\n\nexport type TransactionGasDetailsType1 = {\n evmGasType: EVMGasType.Type1;\n gasEstimate: BigNumber;\n gasPrice: BigNumber;\n};\n\nexport type TransactionGasDetailsType2 = {\n evmGasType: EVMGasType.Type2;\n gasEstimate: BigNumber;\n maxFeePerGas: BigNumber;\n maxPriorityFeePerGas: BigNumber;\n};\n\nexport type TransactionGasDetailsSerialized =\n | TransactionGasDetailsSerializedType0\n | TransactionGasDetailsSerializedType1\n | TransactionGasDetailsSerializedType2;\n\nexport type TransactionGasDetailsSerializedType0 = {\n evmGasType: EVMGasType.Type0;\n gasEstimateString: string;\n gasPriceString: string;\n};\n\nexport type TransactionGasDetailsSerializedType1 = {\n evmGasType: EVMGasType.Type1;\n gasEstimateString: string;\n gasPriceString: string;\n};\n\nexport type TransactionGasDetailsSerializedType2 = {\n evmGasType: EVMGasType.Type2;\n gasEstimateString: string;\n maxFeePerGasString: string;\n maxPriorityFeePerGasString: string;\n};\n\nexport type StartRailgunEngineResponse = {\n error?: string;\n};\n\nexport type DownloadInitialArtifactsResponse = {\n error?: string;\n};\n\nexport enum ChainType {\n EVM = 0,\n}\n\nexport type Chain = {\n type: ChainType;\n id: number;\n};\n\nexport type RailgunBalancesEvent = {\n chain: Chain;\n tokenBalancesSerialized: RailgunShieldedTokenBalanceSerialized[];\n railgunWalletID: string;\n};\n\nexport type MerkletreeScanUpdateEvent = {\n chain: Chain;\n scanStatus: MerkletreeScanStatus;\n progress: number;\n};\n\nexport type LoadProviderResponse = {\n feesSerialized?: FeesSerialized;\n error?: string;\n};\n\nexport type RailgunWalletInfo = {\n id: string;\n railgunAddress: string;\n};\n\nexport type LoadRailgunWalletResponse = {\n railgunWalletInfo?: RailgunWalletInfo;\n error?: string;\n};\n\nexport type UnloadRailgunWalletResponse = {\n error?: string;\n};\n\nexport type RailgunWalletAddressDataSerialized = {\n masterPublicKey: string;\n viewingPublicKey: string;\n};\n\nexport type RailgunBalanceResponse = {\n error?: string;\n};\n\nexport type RailgunShieldedTokenBalanceSerialized = {\n tokenAddress: string;\n balanceString: string;\n};\n\nexport type RailgunProveTransactionResponse = {\n error?: string;\n};\n\nexport type RailgunPopulateTransactionResponse = {\n serializedTransaction?: string;\n error?: string;\n};\n\nexport type RailgunTransactionGasEstimateResponse = {\n gasEstimateString?: string;\n error?: string;\n};\n\nexport type RailgunWalletTokenAmount = {\n tokenAddress: string;\n amountString: string;\n};\n\nexport type RailgunWalletTokenAmountRecipient = RailgunWalletTokenAmount & {\n recipientAddress: string;\n};\n\nexport type EncryptDataWithSharedKeyResponse = {\n encryptedData: [string, string];\n randomPubKey: string;\n sharedKey: Uint8Array;\n};\n\nexport type EncryptDataWithSharedKeySerialized = {\n encryptedData: [string, string];\n randomPubKey: string;\n sharedKey: string;\n};\n\nexport type ValidateCachedProvedTransactionResponse = {\n isValid: boolean;\n error?: string;\n};\n\nexport type Pbkdf2Response = string;\n\nexport type RailgunWalletSendTokenAmount = RailgunWalletTokenAmount & {\n recipientAddress?: string;\n walletSource?: string;\n memoText?: string;\n};\n\nexport type RailgunWalletReceiveTokenAmount = RailgunWalletTokenAmount & {\n senderAddress?: string;\n memoText?: string;\n};\n\nexport type TransactionHistoryItem = {\n txid: string;\n receiveTokenAmounts: RailgunWalletReceiveTokenAmount[];\n transferTokenAmounts: RailgunWalletSendTokenAmount[];\n changeTokenAmounts: RailgunWalletTokenAmount[];\n relayerFeeTokenAmount?: RailgunWalletTokenAmount;\n unshieldTokenAmounts: RailgunWalletSendTokenAmount[];\n version: number;\n};\n\nexport type TransactionHistorySerializedResponse = {\n items?: TransactionHistoryItem[];\n error?: string;\n};\n"]}
1
+ {"version":3,"file":"response-types.js","sourceRoot":"","sources":["../../src/models/response-types.ts"],"names":[],"mappings":";;;AAiEA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,uCAAO,CAAA;AACT,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AA2ED;;GAEG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,mDAAU,CAAA;IACV,qDAAW,CAAA;AACb,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB","sourcesContent":["import { BigNumber } from '@ethersproject/bignumber';\nimport { MerkletreeScanStatus } from './merkletree-scan';\nimport { EVMGasType, FeesSerialized } from './network-config';\n\nexport type RailgunAPICiphertext = {\n iv: string;\n data: string[];\n};\n\nexport type TransactionGasDetails =\n | TransactionGasDetailsType0\n | TransactionGasDetailsType1\n | TransactionGasDetailsType2;\n\nexport type TransactionGasDetailsType0 = {\n evmGasType: EVMGasType.Type0;\n gasEstimate: BigNumber;\n gasPrice: BigNumber;\n};\n\nexport type TransactionGasDetailsType1 = {\n evmGasType: EVMGasType.Type1;\n gasEstimate: BigNumber;\n gasPrice: BigNumber;\n};\n\nexport type TransactionGasDetailsType2 = {\n evmGasType: EVMGasType.Type2;\n gasEstimate: BigNumber;\n maxFeePerGas: BigNumber;\n maxPriorityFeePerGas: BigNumber;\n};\n\nexport type TransactionGasDetailsSerialized =\n | TransactionGasDetailsSerializedType0\n | TransactionGasDetailsSerializedType1\n | TransactionGasDetailsSerializedType2;\n\nexport type TransactionGasDetailsSerializedType0 = {\n evmGasType: EVMGasType.Type0;\n gasEstimateString: string;\n gasPriceString: string;\n};\n\nexport type TransactionGasDetailsSerializedType1 = {\n evmGasType: EVMGasType.Type1;\n gasEstimateString: string;\n gasPriceString: string;\n};\n\nexport type TransactionGasDetailsSerializedType2 = {\n evmGasType: EVMGasType.Type2;\n gasEstimateString: string;\n maxFeePerGasString: string;\n maxPriorityFeePerGasString: string;\n};\n\nexport type StartRailgunEngineResponse = {\n error?: string;\n};\n\nexport type DownloadInitialArtifactsResponse = {\n error?: string;\n};\n\nexport enum ChainType {\n EVM = 0,\n}\n\nexport type Chain = {\n type: ChainType;\n id: number;\n};\n\nexport type RailgunBalancesEvent = {\n chain: Chain;\n tokenBalancesSerialized: RailgunShieldedTokenBalanceSerialized[];\n railgunWalletID: string;\n};\n\nexport type MerkletreeScanUpdateEvent = {\n chain: Chain;\n scanStatus: MerkletreeScanStatus;\n progress: number;\n};\n\nexport type LoadProviderResponse = {\n feesSerialized?: FeesSerialized;\n error?: string;\n};\n\nexport type RailgunWalletInfo = {\n id: string;\n railgunAddress: string;\n};\n\nexport type LoadRailgunWalletResponse = {\n railgunWalletInfo?: RailgunWalletInfo;\n error?: string;\n};\n\nexport type UnloadRailgunWalletResponse = {\n error?: string;\n};\n\nexport type RailgunWalletAddressDataSerialized = {\n masterPublicKey: string;\n viewingPublicKey: string;\n};\n\nexport type RailgunBalanceResponse = {\n error?: string;\n};\n\nexport type RailgunShieldedTokenBalanceSerialized = {\n tokenAddress: string;\n balanceString: string;\n};\n\nexport type RailgunProveTransactionResponse = {\n error?: string;\n};\n\nexport type RailgunPopulateTransactionResponse = {\n serializedTransaction?: string;\n error?: string;\n};\n\nexport type RailgunTransactionGasEstimateResponse = {\n gasEstimateString?: string;\n error?: string;\n};\n\nexport type RailgunWalletTokenAmount = {\n tokenAddress: string;\n amountString: string;\n};\n\nexport type RailgunWalletTokenAmountRecipient = RailgunWalletTokenAmount & {\n recipientAddress: string;\n};\n\n/**\n * Synced from TokenType (@railgun-community/engine).\n */\nexport enum NFTTokenType {\n ERC721 = 1,\n ERC1155 = 2,\n}\n\nexport type RailgunNFTRecipient = {\n nftAddress: string;\n tokenSubIDString: string;\n nftTokenType: NFTTokenType;\n recipientAddress: string;\n};\n\nexport type EncryptDataWithSharedKeyResponse = {\n encryptedData: [string, string];\n randomPubKey: string;\n sharedKey: Uint8Array;\n};\n\nexport type EncryptDataWithSharedKeySerialized = {\n encryptedData: [string, string];\n randomPubKey: string;\n sharedKey: string;\n};\n\nexport type ValidateCachedProvedTransactionResponse = {\n isValid: boolean;\n error?: string;\n};\n\nexport type Pbkdf2Response = string;\n\nexport type RailgunWalletSendTokenAmount = RailgunWalletTokenAmount & {\n recipientAddress?: string;\n walletSource?: string;\n memoText?: string;\n};\n\nexport type RailgunWalletReceiveTokenAmount = RailgunWalletTokenAmount & {\n senderAddress?: string;\n memoText?: string;\n};\n\nexport type TransactionHistoryItem = {\n txid: string;\n receiveTokenAmounts: RailgunWalletReceiveTokenAmount[];\n transferTokenAmounts: RailgunWalletSendTokenAmount[];\n changeTokenAmounts: RailgunWalletTokenAmount[];\n relayerFeeTokenAmount?: RailgunWalletTokenAmount;\n unshieldTokenAmounts: RailgunWalletSendTokenAmount[];\n version: number;\n};\n\nexport type TransactionHistorySerializedResponse = {\n items?: TransactionHistoryItem[];\n error?: string;\n};\n"]}
@@ -29,6 +29,9 @@ var sanitizeError = function (err) {
29
29
  if (lowercaseMsg.includes('intrinsic gas too low')) {
30
30
  return new Error('Gas price rejected. Please select a higher gas price or resubmit.');
31
31
  }
32
+ if (lowercaseMsg.includes('transaction underpriced')) {
33
+ return new Error('Gas fee too low. Please select a higher gas price and resubmit.');
34
+ }
32
35
  if (lowercaseMsg.includes('insufficient funds for intrinsic')) {
33
36
  return new Error('Insufficient gas to process transaction.');
34
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"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","sourcesContent":["const STRING_PREFIX_AFTER_UNICODE_REPLACEMENT = 'y %';\n\nconst validAscii = (str: string) => {\n return str.replace(\n // eslint-disable-next-line no-useless-escape\n /[^A-Za-z 0-9 \\.,\\?\"\"!@#\\$%\\^&\\*\\(\\)-_=\\+;:<>\\/\\\\\\|\\}\\{\\[\\]`~]*/g,\n '',\n );\n};\n\nexport const sanitizeError = (err: Error): Error => {\n if (err && err.message) {\n const lowercaseMsg = err.message.toLowerCase();\n if (\n lowercaseMsg.includes('quorum') ||\n lowercaseMsg.includes('could not connect to')\n ) {\n return new Error('Could not connect.');\n }\n if (lowercaseMsg.includes('call revert exception')) {\n return new Error('Failed to connect to RPC.');\n }\n if (lowercaseMsg.includes('missing revert data')) {\n return new Error('RPC connection error.');\n }\n if (\n lowercaseMsg.includes(\n 'transaction may fail or may require manual gas limit',\n )\n ) {\n return new Error(\n 'Something went wrong. Please make sure you have a valid gas balance for this transaction.',\n );\n }\n if (lowercaseMsg.includes('replacement fee too low')) {\n return new Error(\n 'Nonce is used in a pending transaction, and replacement fee is too low. Please increase your network fee to replace the pending transaction.',\n );\n }\n if (lowercaseMsg.includes('intrinsic gas too low')) {\n return new Error(\n 'Gas price rejected. Please select a higher gas price or resubmit.',\n );\n }\n if (lowercaseMsg.includes('insufficient funds for intrinsic')) {\n return new Error('Insufficient gas to process transaction.');\n }\n if (lowercaseMsg.includes('nonce has already been used')) {\n return new Error(\n 'Nonce already used: the transaction was already completed.',\n );\n }\n if (lowercaseMsg.includes('error while dialing dial tcp')) {\n return new Error(\n 'Error while connecting to RPC provider. Please try again.',\n );\n }\n\n // Custom RAILGUN contract error messages\n if (lowercaseMsg.includes('railgunsmartwallet')) {\n if (lowercaseMsg.includes('invalid nft note value')) {\n return new Error('RailgunSmartWallet: Invalid NFT Note Value.');\n }\n if (lowercaseMsg.includes('unsupported token')) {\n return new Error(\n 'RailgunSmartWallet: Unsupported Token. This token cannot interact with the RAILGUN contract.',\n );\n }\n if (lowercaseMsg.includes('invalid note value')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Note Value. Please submit transaction with a corrected amount.',\n );\n }\n if (lowercaseMsg.includes('invalid adapt contract as sender')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Adapt Contract as Sender. Please update your frontend to current Adapt module versions.',\n );\n }\n if (lowercaseMsg.includes('invalid merkle root')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Merkle Root. Please sync your balances and try again.',\n );\n }\n if (lowercaseMsg.includes('note already spent')) {\n return new Error(\n 'RailgunSmartWallet: Note Already Spent. Please sync your balances and try again.',\n );\n }\n if (lowercaseMsg.includes('invalid note ciphertext array length')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Note Ciphertext Array Length. Please sync balances and re-prove your transaction.',\n );\n }\n if (lowercaseMsg.includes('invalid withdraw note')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Unshield Note. Please sync balances and re-prove your transaction.',\n );\n }\n if (lowercaseMsg.includes('invalid snark proof')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Snark Proof. Please re-prove your transaction.',\n );\n }\n }\n\n return new Error(\n validAscii(err.message).replace(\n `:${STRING_PREFIX_AFTER_UNICODE_REPLACEMENT}`,\n ': ',\n ),\n );\n }\n\n return new Error('Unknown error. Please try again.');\n};\n"]}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"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","sourcesContent":["const STRING_PREFIX_AFTER_UNICODE_REPLACEMENT = 'y %';\n\nconst validAscii = (str: string) => {\n return str.replace(\n // eslint-disable-next-line no-useless-escape\n /[^A-Za-z 0-9 \\.,\\?\"\"!@#\\$%\\^&\\*\\(\\)-_=\\+;:<>\\/\\\\\\|\\}\\{\\[\\]`~]*/g,\n '',\n );\n};\n\nexport const sanitizeError = (err: Error): Error => {\n if (err && err.message) {\n const lowercaseMsg = err.message.toLowerCase();\n if (\n lowercaseMsg.includes('quorum') ||\n lowercaseMsg.includes('could not connect to')\n ) {\n return new Error('Could not connect.');\n }\n if (lowercaseMsg.includes('call revert exception')) {\n return new Error('Failed to connect to RPC.');\n }\n if (lowercaseMsg.includes('missing revert data')) {\n return new Error('RPC connection error.');\n }\n if (\n lowercaseMsg.includes(\n 'transaction may fail or may require manual gas limit',\n )\n ) {\n return new Error(\n 'Something went wrong. Please make sure you have a valid gas balance for this transaction.',\n );\n }\n if (lowercaseMsg.includes('replacement fee too low')) {\n return new Error(\n 'Nonce is used in a pending transaction, and replacement fee is too low. Please increase your network fee to replace the pending transaction.',\n );\n }\n if (lowercaseMsg.includes('intrinsic gas too low')) {\n return new Error(\n 'Gas price rejected. Please select a higher gas price or resubmit.',\n );\n }\n if (lowercaseMsg.includes('transaction underpriced')) {\n return new Error(\n 'Gas fee too low. Please select a higher gas price and resubmit.',\n );\n }\n if (lowercaseMsg.includes('insufficient funds for intrinsic')) {\n return new Error('Insufficient gas to process transaction.');\n }\n if (lowercaseMsg.includes('nonce has already been used')) {\n return new Error(\n 'Nonce already used: the transaction was already completed.',\n );\n }\n if (lowercaseMsg.includes('error while dialing dial tcp')) {\n return new Error(\n 'Error while connecting to RPC provider. Please try again.',\n );\n }\n\n // Custom RAILGUN contract error messages\n if (lowercaseMsg.includes('railgunsmartwallet')) {\n if (lowercaseMsg.includes('invalid nft note value')) {\n return new Error('RailgunSmartWallet: Invalid NFT Note Value.');\n }\n if (lowercaseMsg.includes('unsupported token')) {\n return new Error(\n 'RailgunSmartWallet: Unsupported Token. This token cannot interact with the RAILGUN contract.',\n );\n }\n if (lowercaseMsg.includes('invalid note value')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Note Value. Please submit transaction with a corrected amount.',\n );\n }\n if (lowercaseMsg.includes('invalid adapt contract as sender')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Adapt Contract as Sender. Please update your frontend to current Adapt module versions.',\n );\n }\n if (lowercaseMsg.includes('invalid merkle root')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Merkle Root. Please sync your balances and try again.',\n );\n }\n if (lowercaseMsg.includes('note already spent')) {\n return new Error(\n 'RailgunSmartWallet: Note Already Spent. Please sync your balances and try again.',\n );\n }\n if (lowercaseMsg.includes('invalid note ciphertext array length')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Note Ciphertext Array Length. Please sync balances and re-prove your transaction.',\n );\n }\n if (lowercaseMsg.includes('invalid withdraw note')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Unshield Note. Please sync balances and re-prove your transaction.',\n );\n }\n if (lowercaseMsg.includes('invalid snark proof')) {\n return new Error(\n 'RailgunSmartWallet: Invalid Snark Proof. Please re-prove your transaction.',\n );\n }\n }\n\n return new Error(\n validAscii(err.message).replace(\n `:${STRING_PREFIX_AFTER_UNICODE_REPLACEMENT}`,\n ': ',\n ),\n );\n }\n\n return new Error('Unknown error. Please try again.');\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@railgun-community/shared-models",
3
- "version": "3.2.2",
3
+ "version": "3.2.4",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "files": [