<NME> index.ts
<BEF> export { ITokenBridgeForeignSide } from './sdk/token-bridge-foreign-side';
export { ITokenBridgeHomeSide, BridgeValidationResult } from './sdk/token-bridge-home-side';
export { Safes as ISafes, Safe, DepotSafe, MerchantSafe, PrepaidCardSafe, ExternalSafe, TokenInfo } from './sdk/safes';
export { ILayerOneOracle } from './sdk/layer-one-oracle';
export { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';
export { IAssets } from './sdk/assets';
  TokenInfo,
  ViewSafeResult,
  ViewSafesResult,
} from './sdk/safes';
export type { ILayerOneOracle } from './sdk/layer-one-oracle';
export type { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';
export type { IAssets } from './sdk/assets';
export type { IHubAuth } from './sdk/hub-auth';
export { default as HubConfig } from './sdk/hub-config';
export type { AddressKeys } from './contracts/addresses';
export type { TransactionOptions } from './sdk/utils/general-utils';

export { viewSafe } from './sdk/safes';
export { getAddress, getAddressByNetwork, getOracle, getOracleByNetwork } from './contracts/addresses';
export {
  getConstant,
  getConstantByNetwork,
  networks,
  networkIds,
  CARDWALLET_SCHEME,
  MERCHANT_PAYMENT_UNIVERSAL_LINK_HOSTNAME,
  MERCHANT_PAYMENT_UNIVERSAL_LINK_STAGING_HOSTNAME,
} from './sdk/constants';
export {
  waitForTransactionConsistency,
  waitUntilBlock,
  waitUntilTransactionMined,
  waitForSubgraphIndex,
  waitUntilOneBlockAfterTxnMined,
} from './sdk/utils/general-utils';
export { signTypedData } from './sdk/utils/signing-utils';
export * from './sdk/currency-utils';
export * from './sdk/currencies';
export { query as gqlQuery } from './sdk/utils/graphql';
export { validateMerchantId, generateMerchantPaymentUrl, isValidMerchantPaymentUrl } from './sdk/utils/merchant';
export { getSDK, getABI } from './sdk/version-resolver';

export { default as ERC20ABI } from './contracts/abi/erc-20';
export { default as ERC677ABI } from './contracts/abi/erc-677';
export { default as ForeignBridgeMediatorABI } from './contracts/abi/foreign-bridge-mediator';
export { default as HomeBridgeMediatorABI } from './contracts/abi/home-bridge-mediator';
export { default as HttpProvider } from './providers/http-provider';
export { default as JsonRpcProvider } from './providers/json-rpc-provider';
export { default as Web3Provider } from './providers/web3-provider';
export { MIN_PAYMENT_AMOUNT_IN_SPEND as MIN_PAYMENT_AMOUNT_IN_SPEND__PREFER_ON_CHAIN_WHEN_POSSIBLE } from './sdk/do-not-use-on-chain-constants';
export { protocolVersions } from './contracts/addresses';
export { gasPriceInToken } from './sdk/utils/conversions';

<MSG> Merge pull request #2067 from cardstack/sdk/view-safe-without-web3

sdk utility function to view safes without web3
<DFF> @@ -1,6 +1,15 @@
 export { ITokenBridgeForeignSide } from './sdk/token-bridge-foreign-side';
 export { ITokenBridgeHomeSide, BridgeValidationResult } from './sdk/token-bridge-home-side';
-export { Safes as ISafes, Safe, DepotSafe, MerchantSafe, PrepaidCardSafe, ExternalSafe, TokenInfo } from './sdk/safes';
+export {
+  Safes as ISafes,
+  Safe,
+  DepotSafe,
+  MerchantSafe,
+  PrepaidCardSafe,
+  ExternalSafe,
+  TokenInfo,
+  viewSafe,
+} from './sdk/safes';
 export { ILayerOneOracle } from './sdk/layer-one-oracle';
 export { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';
 export { IAssets } from './sdk/assets';

{'commit': "diff --git a/packages/cardpay-sdk/index.ts b/packages/cardpay-sdk/index.ts\nindex 84874976b..9d15cde67 100644\n--- a/packages/cardpay-sdk/index.ts\n+++ b/packages/cardpay-sdk/index.ts\n@@ -1,6 +1,15 @@\n export { ITokenBridgeForeignSide } from './sdk/token-bridge-foreign-side';\n export { ITokenBridgeHomeSide, BridgeValidationResult } from './sdk/token-bridge-home-side';\n-export { Safes as ISafes, Safe, DepotSafe, MerchantSafe, PrepaidCardSafe, ExternalSafe, TokenInfo } from './sdk/safes';\n+export {\n+  Safes as ISafes,\n+  Safe,\n+  DepotSafe,\n+  MerchantSafe,\n+  PrepaidCardSafe,\n+  ExternalSafe,\n+  TokenInfo,\n+  viewSafe,\n+} from './sdk/safes';\n export { ILayerOneOracle } from './sdk/layer-one-oracle';\n export { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';\n export { IAssets } from './sdk/assets';\ndiff --git a/packages/cardpay-sdk/sdk/safes/base.ts b/packages/cardpay-sdk/sdk/safes/base.ts\nindex 0edaa17b2..61f1eeff4 100644\n--- a/packages/cardpay-sdk/sdk/safes/base.ts\n+++ b/packages/cardpay-sdk/sdk/safes/base.ts\n@@ -128,6 +128,13 @@ const safesQuery = `\n   }\n `;\n \n+export async function viewSafe(network: 'xdai' | 'sokol', safeAddress: string): Promise<Safe | undefined> {\n+  let {\n+    data: { safe },\n+  } = await query(network, safeQuery, { id: safeAddress });\n+  return processSafeResult(safe as GraphQLSafeResult);\n+}\n+\n export default class Safes {\n   constructor(private layer2Web3: Web3) {}\n \ndiff --git a/packages/cardpay-sdk/sdk/safes/index.ts b/packages/cardpay-sdk/sdk/safes/index.ts\nindex 134b0254c..e04a63e08 100644\n--- a/packages/cardpay-sdk/sdk/safes/index.ts\n+++ b/packages/cardpay-sdk/sdk/safes/index.ts\n@@ -4,7 +4,7 @@ import { ContractMeta } from '../version-resolver';\n import v0_6_3 from './v0.6.3';\n import v0_7_0 from './v0.7.0';\n \n-export { Safe, DepotSafe, MerchantSafe, ExternalSafe, PrepaidCardSafe, TokenInfo } from './base';\n+export { Safe, DepotSafe, MerchantSafe, ExternalSafe, PrepaidCardSafe, TokenInfo, viewSafe } from './base';\n \n // add more versions as we go, but also please do drop version that we don't\n // want to maintain simultaneously\n", 'commit_subject': 'Merge pull request #2067 from cardstack/sdk/view-safe-without-web3', 'repo_name': 'cardstack/cardstack', 'committer': {'name': 'GitHub', 'email': '1505422b2465e9a84f6fdfaa161078890c593f06@github.com', 'time_sec': '1631195352', 'tz_offset': '480', 'date': {'seconds': '1631195352'}}, 'commit_tree': '2fd10b09027b4e97c517ed0240ccad646bed0f32', 'commit_message': 'Merge pull request #2067 from cardstack/sdk/view-safe-without-web3\n\nsdk utility function to view safes without web3', 'language_name': 'HTML', 'license': 'mit', 'hunks': "@@ -1,6 +1,15 @@\n export { ITokenBridgeForeignSide } from './sdk/token-bridge-foreign-side';\n export { ITokenBridgeHomeSide, BridgeValidationResult } from './sdk/token-bridge-home-side';\n-export { Safes as ISafes, Safe, DepotSafe, MerchantSafe, PrepaidCardSafe, ExternalSafe, TokenInfo } from './sdk/safes';\n+export {\n+  Safes as ISafes,\n+  Safe,\n+  DepotSafe,\n+  MerchantSafe,\n+  PrepaidCardSafe,\n+  ExternalSafe,\n+  TokenInfo,\n+  viewSafe,\n+} from './sdk/safes';\n export { ILayerOneOracle } from './sdk/layer-one-oracle';\n export { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';\n export { IAssets } from './sdk/assets';\n", 'addition_count': 10, 'deletion_count': 1, 'src_file': 'a/packages/cardpay-sdk/index.ts', 'tgt_file': 'b/packages/cardpay-sdk/index.ts', 'file_extension': '.ts', 'before_file': "export { ITokenBridgeForeignSide } from './sdk/token-bridge-foreign-side';\nexport { ITokenBridgeHomeSide, BridgeValidationResult } from './sdk/token-bridge-home-side';\nexport { Safes as ISafes, Safe, DepotSafe, MerchantSafe, PrepaidCardSafe, ExternalSafe, TokenInfo } from './sdk/safes';\nexport { ILayerOneOracle } from './sdk/layer-one-oracle';\nexport { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';\nexport { IAssets } from './sdk/assets';\n  TokenInfo,\n  ViewSafeResult,\n  ViewSafesResult,\n} from './sdk/safes';\nexport type { ILayerOneOracle } from './sdk/layer-one-oracle';\nexport type { LayerTwoOracle as ILayerTwoOracle } from './sdk/layer-two-oracle';\nexport type { IAssets } from './sdk/assets';\nexport type { IHubAuth } from './sdk/hub-auth';\nexport { default as HubConfig } from './sdk/hub-config';\nexport type { AddressKeys } from './contracts/addresses';\nexport type { TransactionOptions } from './sdk/utils/general-utils';\n\nexport { viewSafe } from './sdk/safes';\nexport { getAddress, getAddressByNetwork, getOracle, getOracleByNetwork } from './contracts/addresses';\nexport {\n  getConstant,\n  getConstantByNetwork,\n  networks,\n  networkIds,\n  CARDWALLET_SCHEME,\n  MERCHANT_PAYMENT_UNIVERSAL_LINK_HOSTNAME,\n  MERCHANT_PAYMENT_UNIVERSAL_LINK_STAGING_HOSTNAME,\n} from './sdk/constants';\nexport {\n  waitForTransactionConsistency,\n  waitUntilBlock,\n  waitUntilTransactionMined,\n  waitForSubgraphIndex,\n  waitUntilOneBlockAfterTxnMined,\n} from './sdk/utils/general-utils';\nexport { signTypedData } from './sdk/utils/signing-utils';\nexport * from './sdk/currency-utils';\nexport * from './sdk/currencies';\nexport { query as gqlQuery } from './sdk/utils/graphql';\nexport { validateMerchantId, generateMerchantPaymentUrl, isValidMerchantPaymentUrl } from './sdk/utils/merchant';\nexport { getSDK, getABI } from './sdk/version-resolver';\n\nexport { default as ERC20ABI } from './contracts/abi/erc-20';\nexport { default as ERC677ABI } from './contracts/abi/erc-677';\nexport { default as ForeignBridgeMediatorABI } from './contracts/abi/foreign-bridge-mediator';\nexport { default as HomeBridgeMediatorABI } from './contracts/abi/home-bridge-mediator';\nexport { default as HttpProvider } from './providers/http-provider';\nexport { default as JsonRpcProvider } from './providers/json-rpc-provider';\nexport { default as Web3Provider } from './providers/web3-provider';\nexport { MIN_PAYMENT_AMOUNT_IN_SPEND as MIN_PAYMENT_AMOUNT_IN_SPEND__PREFER_ON_CHAIN_WHEN_POSSIBLE } from './sdk/do-not-use-on-chain-constants';\nexport { protocolVersions } from './contracts/addresses';\nexport { gasPriceInToken } from './sdk/utils/conversions';\n", 'message': 'Merge pull request #2067 from cardstack/sdk/view-safe-without-web3\n\nsdk utility function to view safes without web3', 'author_name': 'GitHub', 'lang': 'ts'}